Базовый интерфейс:
public interface Registry<E> {
E method();
}
Реализация интерфейса:
RegistryImpl<E> implements Registry<E> {
@Inject
RegistryImpl(...) {
}
@Override
public E method() {
(...)
}
}
Используется для привязки реестра для объекта данных A:
@BindingAnnotation
@Target({ FIELD, PARAMETER, METHOD }) @Retention(RUNTIME)
@interface CustomDataObjectARegistry {
}
Используется для привязкиреестр для объекта данных B:
@BindingAnnotation
@Target({ FIELD, PARAMETER, METHOD }) @Retention(RUNTIME)
@interface CustomDataObjectBRegistry {
}
Я хочу связать CustomDataObjectARegistry с RegistryImpl<DataObjectA>
и CustomDataObjectBRegistry с RegistryImpl<DataObjectB>
, но не смог выяснить синтаксис.
bind(CustomDataObjectARegistry.class).to(new TypeLiteral<RegistryImpl<DataObjectA>>() {})
дает мне «не может разрешить метод».