2

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

Eclipse 足够聪明,可以为这种情况提供快速修复,当我使用它时,它只是删除了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。我误解了defaultprotected的可见性。不过,有没有办法修改 Quickfix?

4

2 回答 2

0

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

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

于 2012-05-22T10:29:00.017 回答
-1

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

于 2012-05-22T15:40:52.943 回答