我发现自己经常发生以下错误。java命名空间冲突
public class Foo{
Bar bar;
public void doSomething(){
Bar bar = makeNewBar();
// bla bla
}
}
其中的错误是我想设置Foo的酒吧,而不是本地酒吧。即,我应该说bar = makeNewBar()
,而不是Bar bar = makeNewBar()
。是否有编译器警告标志或可以检测到“命名空间冲突”的东西?如果不是,那么避免这种情况的好方法是什么(尽量不要发生错误,这显然是最好的选择= p)?
我不知道是否有编译器警告,但任何不错的IDE应该告诉你,局部变量隐藏实例变量...... – assylias 2013-02-11 16:38:44
使用IDE;他们告诉你这些事情。 – 2013-02-11 16:39:02
[Checkstyle可以检测到这个。](http://checkstyle.sourceforge.net/config_coding.html#HiddenField) – millimoose 2013-02-11 16:39:31