java中的“字段隐藏另一个字段”警告 - Netbeans

时间:2013-08-30 23:13:08

标签: java netbeans warnings compiler-warnings

我正在编写两个班级。

public class ServerPanel extends JPanel{

private EventListenerList listenerList = new EventListenerList();
(...)
}

public class DetailsPanel extends JPanel{

private EventListenerList listenerList = new EventListenerList();
(...)
}

现在,Netbeans警告我,对于listenerList变量,字段隐藏了另一个字段。

所以我的问题是,这是一个严重的问题吗?以后在添加/删除事件时会遇到问题吗?

这是一个很好的java练习吗?

我该怎么办?

谢谢!

2 个答案:

答案 0 :(得分:4)

这不是编译错误,并且这两个字段是分开处理的,所以什么都不会中断。但是,我不建议这样做,因为对于代码工作的任何人来说,包括你在内都会非常困惑。

您还应该知道,您不会替换超类中的listenerList字段,只需创建一个具有相同名称的新字段。

<强> [编辑]

我应该澄清;这些名字 完全相同;完全限定的名称是不同的:

javax.swing.JPanel.listenerList
whatever.yourpackageis.ServerPanel.listenerList
whatever.yourpackageis.DetalsPanel.listenerList

答案 1 :(得分:4)

https://docs.oracle.com/javase/tutorial/java/IandI/hidevariables.html

  

隐藏字段

     

在一个类中,一个与该字段中的字段同名的字段   超类隐藏了超类的字段,即使它们的类型是   不同。在子类中,超类中的字段不能   由简单名称引用。相反,必须访问该字段   通过超级,这将在下一节中介绍。通常   说来,我们不建议隐藏字段,因为它会使代码变得困难   阅读。