假设以下情况: 我有一个私有(private) 字段和一个引用或修改该字段的内部类。编译器将此标记为警告,因为该字段应 protected (默认可见性)。到目前为止一切顺利。
Eclipse 足够聪明,可以快速修复这种情况,当我使用它时,它只是删除了 private 修饰符。
这会删除警告,但与我的代码风格不符。我希望它将 private 替换为 protected。
有没有办法修改 Quickfix 的行为方式?
为了更好理解的示例代码:ActionListener 中的 foo 被标记为警告
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test {
private String foo = "bar";
public void bla() {
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
foo = "whatev";
}
};
}
}
提前致谢!
编辑: 感谢 Aleks 和 Thin Pham。我误解了default 和protected 的可见性。不过,有没有办法修改 Quickfix?
最佳答案
我的“风格”是为私有(private)字段创建某种(必要时 protected )setter,因为我尽量避免使用非私有(private)字段。非私有(private)字段的问题在于,您必须在基类中添加大量额外代码,以捕获可能来自子类的所有可能的无效更改。如果你有一个 protected /公共(public)的 setter,你可以只捕获这个 setter 中的每个无效更改,而类的其余部分不必担心它。
在某些情况下,创建非私有(private)字段绝对有意义,但您的代码示例通常不是其中之一(至少对我而言)。
关于java - 修改快速修复 'Change visibility to default',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699169/