Я пытаюсь создать параметр @Named Integer
в Guice, что позволяет нулевые значения для случаев, когда значение не применимо:Guice: @Nullable отказывается работать с @Named
@Singleton
public class MyClass extends SomeOtherClass {
@Inject
MyClass(Object o, @Named("the name") @Nullable Integer myParam) {
...etc...
}
}
и
@Provides
@Named("the name")
public Integer getParamName() {
// Set to null for Not Applicable
return null;
}
к сожалению, Guice, кажется, не нравится это:
null returned by binding at my.package.ApplicationConfig$MyModule.getParamName()
but parameter 1 of my.package.MyClass.<init>() is not @Nullable
в @Nullable
annota я использую com.google.inject.internal.Nullable
, который включен в Guice и имеет @Retention(RetentionPolicy.RUNTIME)
.
Подобные вопросы, которые я нашел на переполнение стека, были, к сожалению, либо неконструктивными, либо неприменимыми. Есть идеи?
Попробуйте добавить метод @Nullable to provider. – efan