Hallo Leute,
folgender Code
die Frage vom Prof ist hier = Welche der folgenden Anweisungen werden vom Compiler akzeptiert, welche nicht?
Leider blick ich absolut nicht durch was die Methoden f und g hier machen.
folgender Code
Code:
class A { };
class B extends A { };
class C extends B { };
class D extends B { };
class E { };
class X {
public static <T> T f(T[] a, Feld<? extends T> b) { return null; }
public static <T> T[] g(Feld<? extends T> a, Feld<? super T> b) { return null; }
}
public class Test {
public static void main(String[] args) {
//Anweisungen
A x01 = X.f(new B[3], new FeldFix<D>(8));
Object[] x02 = X.f(new C[2], new FeldFix<D[]>(8));
Feld x03 = X.f(new FeldFix[4], new FeldFix<FeldFix<A>>(8));
A[] x05 = X.g(new FeldFix<B>(8), new FeldFix<B>(8));
B[] x06 = X.g(new FeldFix<B>(8), new FeldFix<A>(8));
C[] x07 = X.g(new FeldFix<B>(8), new FeldFix<A>(8));
C[] x08 = X.g(new FeldFix<C>(8), new FeldFix<A>(8));
C[] x09 = X.g(new FeldFix<A>(8), new FeldFix<C>(8));
C[] x10 = X.g(new FeldFix<D>(8), new FeldFix<B>(8));
Object x11 = X.g(new FeldFix<B>(8), new FeldFix<D>(8));
B[] x12 = X.g(new FeldFix<A>(8), new FeldFix<Object>(8));
A[] x13 = X.g(new FeldFix<B>(8), new FeldFix<Object>(8));
Object x14 = X.g(new FeldFix<C[]>(8), new FeldFix<A[]>(8));
Object x15 = X.g(new FeldFix<Feld<C>>(8), new FeldFix<Feld<A>>(8));
Object x16 = X.g(new FeldFix<Feld<C>>(8), new FeldFix<Feld>(8));
}
}
die Frage vom Prof ist hier = Welche der folgenden Anweisungen werden vom Compiler akzeptiert, welche nicht?
Leider blick ich absolut nicht durch was die Methoden f und g hier machen.