Un petit programme marrant (enfin pour moi) qui permet
de faire de la covariance sur les param�tres en Java.
public class Covariance {
public static class A<T extends A> {
public void m(T t) {
System.out.println("A.m() "+t);
}
}
public static class B<T extends B> extends A<T> {
public void m(T t) {
System.out.println("A.m() "+t);
}
}
public static void main(String[] args) {
A a=new A();
B b=new B();
b.m(a);
}
}
Dans l'exemple, la m�thode m() de B red�finie, la
m�thode m() de A :)
Le programme compile avec des warnings,
et plante � l'ex�cution :
Exception in thread "main" java.lang.ClassCastException
at Covariance$B.m(Covariance.java:9)
at Covariance.main(Covariance.java:19)
Comme quoi, avec un peut de mauvaise volont�, on peut
faire la m�me chose qu'en Eiffel :)
Remi