import java.util.ArrayList;
public class Test
{
public void foo()
{
ArrayList<MyType<?>> listOfMyTypes = new ArrayList<MyType<?>>();
MyType<String> myTypeString = new MyType<String>();
MyType<Integer> myTypeInteger = new MyType<Integer>();
myTypeString.setValue("hello");
myTypeInteger.setValue(5);
listOfMyTypes.add(myTypeString);
listOfMyTypes.add(myTypeInteger);
for (MyType m : listOfMyTypes)
System.out.println(m.getValue());
}
public static void main(String... args)
{
Test test = new Test();
test.foo();
}
}
class MyType<T>
{
private T value;
public T getValue() { return value; }
public void setValue(T value) { this.value = value; }
}