【问题标题】:Using Array From Another class Show Null pointer Exception [duplicate]使用另一个类中的数组显示空指针异常[重复]
【发布时间】:2019-09-28 09:28:16
【问题描述】:

我正在尝试使用在一个类中创建的数组并使用Clone() 通过触发方法将其克隆到另一个类中,但它会引发空指针异常

int[] mat[];
int N; 
int SRN;
int K;
int send[][];
Generate()
{ 

}
Generate(int N, int K) 
{ 
    this.N = N; 
    this.K = K; 

    // Compute square root of N 
    Double SRNd = Math.sqrt(N); 
    SRN = SRNd.intValue();

    mat = new int[N][N];
}

public int[][] SendAry()
{
    return send.clone();
}

并从另一个类中调用此方法并将其字符串化到一个数组中

    Generate ARY=new Generate();
    int Values[][]=ARY.SendAry();

【问题讨论】:

  • 看起来send 没有被创建。您需要在构造函数中添加行send = new int[a number][another number]
  • send 始终为空,因为您从未初始化它
  • 您分配给mat,然后尝试克隆send。没用。
  • 您的send 数组从未初始化,因此当您尝试在SendAry 方法中访问它时将为空。此外,您几乎打破了 sn-p 中所有可能的 Java 编码约定... :-)

标签: java arrays clone


【解决方案1】:

数组发送未初始化,因此为空。您可以使用多种方式对其进行初始化。 最简单的方法是int send[][] = new int[<size>][<size>]; <size> 是您希望数组具有的大小。 你可以从here看到更多关于初始化数组的信息

【讨论】:

  • 感谢重播,但 nullpointexception 已解决,但数组仍为空。即使我直接用一个对象指向它,也不是 null 而是零
  • 你想要什么?
  • 这是一个创建数独谜题的程序,该数组位于生成类中,如果我直接从该类中打印它,它工作正常,但我尝试使用该数组并使用使用面板和按钮的界面以及所有这些,但是一旦我克隆它,甚至使用对象直接指向类中的数组,它现在一直是空的,就像零一样
  • 整个数组默认都是零。您可以使用循环更改它们。
  • 是的,该方法运行...更改值....当我在同一个类中打印它时,它可以工作。但如果在另一个类中打印它的零
猜你喜欢
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多