我正在用java构建一个简单的模拟网络,我可以在其中添加计算机、服务器,并使用以太网端口连接两个对象。当我调用“this.etherPort.addElement(t);”时,这是抛出空指针异常的地方
导入java.util.Vector;
公共(public)类服务器扩展计算机{
公共(public) vector <以太网> etherPort;
公共(public)无效addPort(以太网t)
{
this.etherPort.addElement(t);
}
}
当我使用以下代码创建新的以太网对象时,会运行此代码:
公共(public)类以太网{
公共(public)计算机终端1、终端2;
公共(public) int 卷;
公共(public)以太网(计算机术语、服务器术语2)
{
this.terminal1 = 术语;
this.terminal2 = (计算机) term2;
if(术语!= null)
{
term.addPort(this);
}
if(term2!= null)
{
term2.addPort(this);
}
}
}
最佳答案
您需要实例化您的 etherPort 成员:
public class Server extends Computer{
public Vector<Ethernet> etherPort = new Vector<Ethernet>();
public void addPort(Ethernet t)
{
this.etherPort.addElement(t);
}
}
不过,您应该确保 addPort() 不会覆盖从 Computer 构造函数调用的方法。鉴于上下文,我认为它是安全的(即计算机没有 addPort() 方法)。
正如下面评论中所述,通常最好使用不限制容器实现的接口(interface):您最好将 etherPort 声明为
List<Ethernet>
而不是
Vector<Ethernet>
并使用 etherPort.add(element) 而不是特定于 Vector 的 addElement 方法。
关于java - 帮助解决Java中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975619/