Вероятно, самый простой способ сделать это - использовать @Provides
методы:
@Provides @HelpTopicId("A")
protected String provideA() {
return "1";
}
Кроме того, вы можете создать инстанцируемую реализацию аннотации / интерфейса HelpTopicId
, аналогичную реализации Names.named
(см. NamedImpl ). Имейте в виду, что существуют некоторые специальные правила для того, как такие вещи, как hashCode()
, реализованы для аннотации ... NamedImpl
следует этим правилам.
Кроме того, использование new TypeLiteral<String>(){}
расточительно ... String.class
можно использовать вместо него. Кроме того, для String
, int
и т. Д. Обычно следует использовать bindConstant()
вместо bind(String.class)
. Это проще, требует, чтобы вы предоставили обязательную аннотацию, и ограничено примитивами, String
s, Class
литералами и enum
s.