考虑以下来自官方java.awt.font.TextLayout OpenJDK source的代码:
public final class TextLayout {
/* ... */
protected void handleJustify(float justificationWidth) {
// never called
}
}
这里的用例是什么,为什么通常编写这样的代码为什么有意义?
解决方法:
仍然可以通过同一包中的代码访问受保护的成员.我的猜测是,该类在某些早期版本(可能甚至不是公共版本)中曾经是非最终的,然后被设置为最终的,并且受保护的方法保持原样,因为在使用它的同一包中可能有代码(而不是之所以将其更改为私有包,仅仅是因为没有人看到这样做的好处.