3

我正在编写两个类。

public class ServerPanel extends JPanel{

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

public class DetailsPanel extends JPanel{

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

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

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

这是很好的java练习吗?

我应该怎么办?

谢谢!

4

2 回答 2

4

这不是编译错误,这两个字段是分开处理的,所以什么都不会破坏。但是,我不建议这样做,因为它可能会让任何处理代码的人(包括您)感到非常困惑。

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

[编辑]

我应该澄清一下;名称不完全相同;完全限定名称不同:

javax.swing.JPanel.listenerList
whatever.yourpackageis.ServerPanel.listenerList
whatever.yourpackageis.DetalsPanel.listenerList
于 2013-08-30T23:17:10.500 回答
4

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

隐藏字段

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

于 2015-09-07T11:50:22.663 回答