I thought about this for a while and I can see the rationale of it being final;While declaring a method, static usually implies that it is also final, this is not true for classes.
that a static method is always available
and it's bound to the type of the reference
and doesn't vary at runtime.
But on the other hand isn't there a difference between a final static method and a static method?
The final method cannot be hidden by a subclass method?
(javac actually reports 'cannot override' and 'overridden method is static,final'
for a static method matching the signature of a static final method in parent class)