Community
Participate
Working Groups
3.1M7 for example: interface A<T> { void f(T x); } interface B extends A<String> { void f(String x); } class C implements B { public void f(String x) { } } and then, A a = new C(); a.f(new Object()); Compiler these codes by javac, and we get a ClassCastException. But by eclipse, there is an AbstractMethodError. The compiler of eclipse must generate a brigde method with name f and type (Ljava/lang/Object;)V .
Change C to: class C implements B { public void f(String x) { } public void f(Object x) { } } then no Throwable is thrown at running for eclipse compiler but this code is denied in sun's javac
Added MethodVerify test055
Verified on build I20050527-0010.