java - 帮助解决Java中的空指针异常

标签 java

我正在用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/

相关文章:

java - 如何将同一个bean实例注入(inject)到多个bean中

java - 列表/哈希集中使用的自定义类

java - 如果一个类被多次加载,它的静态成员是否被多次初始化?

java - 如何在 Java 中不使用内置方法 .endsWith() 实现 String.endsWith()

java - JFileChooser 不遵循外观

java - 从 Pincode 到 State 解析数据时出错 org.json.JSONException : Value &lt;! java.lang.String 类型的 DOCTYPE 无法转换为 JSONObject

Java 程序无法映射 native 内存分配

Java 命名指南(特定类类型命名 - 不是约定)

java - 在JOOQ中实现batchMerge()

java - 从 xml 中的 GATE 中提取注释