import java.util.*;
public class ValWeirdTypes<Z> {
private List<Z> fieldList;
public void testGenerics() {
List<String> list = new ArrayList<String>();
list.add("Hello, World!");
final java.lang.String shouldBeString = list.get(0);
final java.util.List<java.lang.String> shouldBeListOfString = list;
final java.util.List<java.lang.String> shouldBeListOfStringToo = Arrays.asList("hello", "world");
final java.lang.String shouldBeString2 = shouldBeListOfString.get(0);
}
public void testGenericsInference() {
final java.util.List<java.lang.Object> huh = Collections.emptyList();
final java.util.List<java.lang.Number> huh2 = Collections.<Number>emptyList();
}
public void testPrimitives() {
final int x = 10;
final long y = 5 + 3L;
}
public void testAnonymousInnerClass() {
final java.lang.Runnable y = new Runnable(){
public void run() {
}
};
}
public <T extends Number> void testTypeParams(List<T> param) {
final T t = param.get(0);
final Z z = fieldList.get(0);
final java.util.List<T> k = param;
final java.util.List<Z> y = fieldList;
}
public void testBounds(List<? extends Number> lower, List<? super Number> upper) {
final java.lang.Number a = lower.get(0);
final java.lang.Object b = upper.get(0);
final java.util.List<? extends java.lang.Number> c = lower;
final java.util.List<? super java.lang.Number> d = upper;
List<?> unbound = lower;
final java.util.List<?> e = unbound;
}
public void testCompound() {
final java.util.ArrayList<java.lang.String> a = new ArrayList<String>();
final java.util.Vector<java.lang.String> b = new Vector<String>();
final boolean c = 1 < System.currentTimeMillis();
final java.util.AbstractList<java.lang.String> d = c ? a : b;
java.util.RandomAccess confirm = c ? a : b;
}
public void nullType() {
final java.lang.Object nully = null;
}
public void testArrays() {
final int[] intArray = new int[]{1, 2, 3};
final java.lang.Object[][] multiDimArray = new Object[][]{{}};
final int[] copy = intArray;
final java.lang.Object[] single = multiDimArray[0];
final int singleInt = copy[0];
}
}