我在 eclipse 中收到很多这样的警告:



我想得到它们是因为我没有在eclipse中手动将protectedAllowed设置为true。但是为什么默认情况下将其设置为false?我不应该使用 protected 属性吗?

最佳答案

从理论上讲, protected 属性(变量)在面向对象的语言中是一种反模式。如果仅子类需要访问其父类(super class)的成员属性,则将属性本身定义为私有(private)并创建 protected 访问器方法(getter和setter)。这种方法采用了“信息隐藏”的概念。还有一个替代解决方案:定义 protected 不可变(最终)成员属性。

进一步阅读:

  • Should you ever use protected member variables?
  • http://www.codinghorror.com/blog/2006/08/properties-vs-public-variables.html
  • 关于java - 为什么Checkstyle默认情况下不允许使用 protected 变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8465450/

    10-14 10:18