Java最终类中受保护方法的用例是什么?

考虑以下来自官方java.awt.font.TextLayout OpenJDK source的代码:

public final class TextLayout {

    /* ... */

    protected void handleJustify(float justificationWidth) {
      // never called
    }
}

这里的用例是什么,为什么通常编写这样的代码为什么有意义?

解决方法:

仍然可以通过同一包中的代码访问受保护的成员.我的猜测是,该类在某些早期版本(可能甚至不是公共版本)中曾经是非最终的,然后被设置为最终的,并且受保护的方法保持原样,因为在使用它的同一包中可能有代码(而不是之所以将其更改为私有包,仅仅是因为没有人看到这样做的好处.

上一篇:使用java.awt.Robot类在applet中进行屏幕捕获时,java.security.AccessControlException


下一篇:BUG:在带有awt setFullScreenWindow的OSX中使用JDK 7的Java Swing键绑定失去功能