jersey2-guice-impl/src/main/java/com/squarespace/jersey2/guice/GuiceJustInTimeResolver.java
private Binding<?> findBinding(Injectee injectee) {
    Key<?> key = BindingUtils.toKey(injectee);
    if (key == null) {
      return null;
    }
    
    // We can't do anything about HK2 @Contracts
    if (BindingUtils.isHk2Contract(injectee)) {
      return null;
    }
    
    // Classes with a @Contract annotation are SPIs. They either exist or
    // not. They must be explicit bindings in the world of Guice.
    if (BindingUtils.isJerseyContract(injectee)) {
      return injector.getExistingBinding(key);
    }
    
    // We've to use Injector#getBinding() to cover Just-In-Time bindings
    // which may fail with an Exception because Guice doesn't know how to
    // construct the requested object.
    return injector.getBinding(key);
  }
private Binding<?> findBinding(Injectee injectee) {
    Key<?> key = BindingUtils.toKey(injectee);
    if (key == null) {
      return null;
    }
    
    // We can't do anything about HK2 @Contracts
    if (BindingUtils.isHk2Contract(injectee)) {
      return null;
    }
    
    // Classes with a @Contract annotation are SPIs. They either exist or
    // not. They must be explicit bindings in the world of Guice.
    if (BindingUtils.isJerseyContract(injectee)) {
      return injector.getExistingBinding(key);
    }
    
    // We've to use Injector#getBinding() to cover Just-In-Time bindings
    // which may fail with an Exception because Guice doesn't know how to
    // construct the requested object.
    return injector.getBinding(key);
  }
Returns a {@link Guice} {@link Binding} for the given HK2 {@link Injectee}
or {@code null} if there is no such binding (i.e. Guice doesn't have it and
doesn't know how to build it).