java - 修改快速修复 'Change visibility to default'

标签 java eclipse

假设以下情况: 我有一个私有(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。我误解了defaultprotected 的可见性。不过,有没有办法修改 Quickfix?

最佳答案

我的“风格”是为私有(private)字段创建某种(必要时 protected )setter,因为我尽量避免使用非私有(private)字段。非私有(private)字段的问题在于,您必须在基类中添加大量额外代码,以捕获可能来自子类的所有可能的无效更改。如果你有一个 protected /公共(public)的 setter,你可以只捕获这个 setter 中的每个无效更改,而类的其余部分不必担心它。

在某些情况下,创建非私有(private)字段绝对有意义,但您的代码示例通常不是其中之一(至少对我而言)。

关于java - 修改快速修复 'Change visibility to default',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699169/

相关文章:

java - 使用 Nimbus 更改工具提示

java - Tomcat 7 服务器不会加载类 : ClassNotFoundException

java - 如何让GWTUpload SingleUploader替换之前选择的图片

java - 创建 Maven 项目时无法计算构建计划

java - 我应该如何使用 `try-with-resources` 中的 IOException 嵌套在 header 中带有`throws IOException`的方法中?

java - 不满意的依赖异常 : Error creating bean with name 'HController' caused by NoSuchBeanDefinitionException:

java - 如何通过 ResourceBundle 在资源属性中使用 UTF-8

java - 无法运行新的android项目

java - 级联删除时 Hook 自定义操作

java - 将 Jar 文件与 -classpath JAVA 组合