diamonds: 1.7 type inference for New Expressions

This commit is contained in:
anna
2010-08-05 15:54:23 +04:00
parent d946490998
commit a9bb49eb29
26 changed files with 759 additions and 69 deletions
@@ -0,0 +1,44 @@
public class Pos04<U> {
void test() {
class Foo<V> {
Foo(V x) {
}
<Z> Foo(V x, Z z) {
}
}
Foo<Integer> p1 = new Foo< >(1); //new Foo<Integer> created
Foo<? extends Integer> p2 = new Foo< >(1); //new Foo<Integer> created
Foo<?> p3 = new Foo< >(1); //new Foo<Object> created
Foo<? super Integer> p4 = new Foo< >(1); //new Foo<Object> created
Foo<Integer> p5 = new Foo< >(1) {
}; //new Foo<Integer> created
Foo<? extends Integer> p6 = new Foo< >(1) {
}; //new Foo<Integer> created
Foo<?> p7 = new Foo< >(1) {
}; //new Foo<Object> created
Foo<? super Integer> p8 = new Foo< >(1) {
}; //new Foo<Object> created
Foo<Integer> p9 = new Foo< >(1, ""); //new Foo<Integer> created
Foo<? extends Integer> p10 = new Foo< >(1, ""); //new Foo<Integer> created
Foo<?> p11 = new Foo< >(1, ""); //new Foo<Object> created
Foo<? super Integer> p12 = new Foo< >(1, ""); //new Foo<Object> created
Foo<Integer> p13 = new Foo< >(1, "") {
}; //new Foo<Integer> created
Foo<? extends Integer> p14 = new Foo< >(1, "") {
}; //new Foo<Integer> created
Foo<?> p15 = new Foo< >(1, "") {
}; //new Foo<Object> created
Foo<? super Integer> p16 = new Foo< >(1, "") {
}; //new Foo<Object> created
}
public static void main(String[] args) {
Pos04<String> p4 = new Pos04<>();
p4.test();
}
}