title: Guice Inject Field in class NullPointerException, circular dependency issue introduced
body: <p>I need to use create a singleton in Guice defined in separate library.</p>
  
  <pre><code>@RequiredArgsConstructor
  public class Operator {
  
      @NonNull private final Catalog catalog;
  
      @Inject private Evaluator evaluator;
   ...
  }
  </code></pre>
  
  <p>One of the problem is that this class introduces circular dependency, Evaluator -> Operator -> Evaluator. I know it is not a good design, but is consumed by other packages, there is no easy way to change it. This library has the beans created using Spring framework, where this circular dependency could be handled.</p>
  
  <p>Now I need to create an instance of the Operator in a service based on Guice, I have created the singleton Evaluator in the service, but it was not able to inject the singleton into the Operator.</p>
  
  <pre><code>@Provides @Singleton
  public Operator operator(final Catalog catalog) 
  {
      return new Operator(catalog);
  }
  
  @Provides @Singleton
  public Evaluator evaluator(final Operator operator) {
      return new Evaluator(operator);
  }
  </code></pre>
  
  <p>Since the Operator class is being used for other services based on Spring framework, I would prefer not to change it. What can I do to make the Guice able to inject the Evaluator into Operator?</p>
  
  <p>Thanks in advance for any help!</p>