2015-04-22 2 views
1

Допустим, мы имеем следующий код:Есть ли способ вставить экземпляр в коллекцию с использованием HK2?

@Inject 
private Collection<SomeKind> myCollection; 

То, что я хочу, что зависимость после того, как они были решены (я имею в виду, все классы, которые имеют SomeKind типа), также могут быть добавлены в коллекцию. Я знаю, что могу внедрить ServiceLocator и программно искать экземпляры в реестре, а затем добавлять их в коллекцию самостоятельно, мне просто интересно, существует ли общий механизм для этого сценария.

ответ

1

Я думаю, что вы хотите, это IterableProvider<SomeKind>. См. Documentation.

Это Iterable, так что вы можете использовать его в течение каждого цикла

for (SomeKind someKind: someKinds) { 
    ... 
} 

Вы можете посмотреть их по имени

@Inject 
IterableProvider<SomeKind> someKinds; 
... 
SomeKind someKind = someKinds.named("someName").get(); 

Вот complete example using Jersey

+0

Отлично! Это именно то, что я искал. Большое спасибо! – facundofarias

Смежные вопросы