Binary Compatibility: vtable entries for final methods

David Daney ddaney@avtrex.com
Thu May 13 16:37:00 GMT 2004


Andrew Haley wrote:

>"Changing a class that was declared final to no longer be declared
>final does not break [binary compatibility.]"
>
>"Removing the final modifier from a method does not break [binary
>compatibility.]"
>
>So, our practice of making direct calls to final methods and not
>generating vtable entries for them must cease.  I'm minded to make an
>exception for java.lang.Object, because we'd otherwise add a bunch of
>vtable entries to every single class for no good reason.
>
>Andrew.
>  
>
You can still make a direct call to a final method from the same class.  
Because when you make it non-final you will be recompiling the whole 
class and will be able to change the calls to go via the vtable.

I agree that you do have to make a vtable entry for all final methods 
(but not private ones).

David Daney.



More information about the Java mailing list