@Test public void testGenericInjectionWithSetterInjection() { DefaultPicoContainer pico = new DefaultPicoContainer(new SetterInjection()); pico.addComponent(Cod.class); pico.addComponent(Shark.class); pico.addComponent(GenericBowl.class); //pico.addComponent(ArrayList.class); //pico.addComponent(ArrayList.class, ArrayList.class, new CollectionComponentParameter(Fish.class, false)); GenericBowl bowl = pico.getComponent(GenericBowl.class); assertEquals(2, bowl.fishes.size()); } @Test public void testGenericInjectionWithConstructorInjection() { DefaultPicoContainer pico = new DefaultPicoContainer(); pico.addComponent(Cod.class); pico.addComponent(Shark.class); pico.addComponent(GenericBowl.class); GenericBowl bowl = pico.getComponent(GenericBowl.class); assertEquals(2, bowl.fishes.size()); } public static interface Fish { } public static class Cod implements Fish { } public static class Shark implements Fish { } public static class GenericBowl { List fishes; public void setFishes(List fishes) { this.fishes = fishes; } public GenericBowl() { } public GenericBowl(List fishes) { this.fishes = fishes; } }