and*_*dge 1 java scope namespaces
我发现自己经常犯以下错误.
public class Foo{
Bar bar;
public void doSomething(){
Bar bar = makeNewBar();
// bla bla
}
}
Run Code Online (Sandbox Code Playgroud)
错误在于我想设置Foo的栏,而不是本地栏.即,我应该说bar = makeNewBar(),不是Bar bar = makeNewBar().是否有编译器警告标志或可以检测到"命名空间冲突"的东西?如果不是,那么避免这种情况的好方法是什么(没有犯错误,这显然是最好的选择= p)?
这不是编译器的工作,但是如果您隐藏变量,大多数IDE会使用正确的设置警告您.
使用Eclipse,转到Preferences / Java / Compiler / Error/Warnings并寻找Name shadowing and conflicts.