修改快速修复'将可见性更改为默认值'

时间:2012-05-22 09:20:21

标签: java eclipse

假设以下情况: 我有一个私有字段和一个引用或修改此字段的内部类。编译器将此标记为警告,因为该字段应为 protected (默认可见性)。到目前为止一切顺利。

Eclipse非常聪明,可以为这种情况提供快速修复,当我使用它时,它只是删除私有修饰符。

这会删除警告,但与我的代码样式不符。我希望用 protected 代替 private 这个词。

有没有办法修改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。我误解了默认受保护的可见性。还有,有办法修改Quickfix吗?

2 个答案:

答案 0 :(得分:0)

我的“风格”是为私有字段创建某种(必要时受保护)设置器,因为我试图避免使用非私有字段。非私有字段的问题是您必须在基类中添加许多其他代码,以捕获可能来自后代类的每个可能的无效更改。如果你有一个受保护/公共的setter,你可以捕获这个setter中的每个无效更改,而其他类不必担心它。

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

答案 1 :(得分:-1)

快速修复程序与Eclipse中的其他内容一样,通过插件提供。最有可能是JDT插件之一。我认为你唯一能做的就是在自己的插件中编写自己的快速修复程序。