package introduceparameterproduceswarning; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class IntroduceParameterProducesWarning { private final List<Generic<?>> elements; public IntroduceParameterProducesWarning() { elements = newArrayList(new SomeGeneric(), new SomeOtherGeneric()); } public void doStuff() { elements.size(); } public static <E> ArrayList<E> newArrayList(E... elements) { ArrayList<E> list = new ArrayList<E>(); Collections.addAll(list, elements); return list; } private static class SomeClass { } private static class SomeOtherClass { } private static interface Generic<T>{ } private static class SomeGeneric implements Generic<SomeClass> { } private static class SomeOtherGeneric implements Generic<SomeOtherClass> { } }