我正在尝试@Named Integer
在 Guice 中创建一个参数,该参数允许在没有值适用的情况下使用空值:
@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
我正在使用的注释是com.google.inject.internal.Nullable
,它包含在 Guice 中并且确实有@Retention(RetentionPolicy.RUNTIME)
.
不幸的是,我在 Stack Overflow 上发现的类似问题要么不具建设性,要么不适用。有任何想法吗?