I am working on a Java Springframework project and using JUnit4 to test it.
My class implements Comparable and overrides the compareTo method.
In my test, when I do
@Test
Class<myClass> m = myClass.class;
Method[] methods = m.getDeclaredMethods();
assertEquals(5, methods.length);
This test fails even though there are exactly 5 methods in myClass. When I looked in the Eclipse debugger, I see that the compareTo method gets called twice.
I can’t find an explanation for this behavior. Why does this happen?
The compiler generates a bridge method for
compareTo()The mechanism is explained very well in Angelika Langer’s Generics FAQ: What is a bridge method?: