\begin{slide}{Generics und Arrays}

das gibt keinen Typfehler:
\begin{verbatim}
class C { }
class E extends C { void m () { } }

E [] x = { new E (), new E () };
C [] y = x;

y [0] = new C ();
x [0].m();
\end{verbatim}
aber \dots (Übung)

\end{slide}

\begin{slide}{Generics und Arrays (II)}

warum ist die Typprüfung für Arrays schwächer als
für Collections?

Historische Gründe. Das sollte gehen:

\begin{verbatim}
void fill (Object[] a, Object x) { .. }
String [] a = new String [3];
fill (a, "foo");
\end{verbatim}

Das sieht aber mit Generics besser so aus: \ldots


\end{slide}
