Если вы хотите сделать существование привязки необязательным, вы можете использовать @Inject(optional = true)
для инъекций полей и методов.Для инжекторов типа contructor и других параметров необходимо использовать вспомогательный класс, например:
class Foo {
public String hello(Helper helper) {
return Helper.string;
}
private static final class Helper {
@Inject(optional = true) public String string = "";
}
}
Обратите внимание, что приведенное выше не позволяет вводить null
, поэтому Foo # hello никогда не вернет null
.Если вы хотите разрешить null
, просто добавьте аннотацию @Nullable
.Имейте в виду, что код, подобный следующему, не будет работать, если вы не предоставили привязку (к нулю, если ничего больше) для строки:
class Bar {
@Inject @Nullable public String hello(@Nullable String string) {
return string;
}
}