Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中从另一个类获取数组_Java_Arrays - Fatal编程技术网

如何在Java中从另一个类获取数组

如何在Java中从另一个类获取数组,java,arrays,Java,Arrays,我在First.java中有一个数组,假设den Second.java收集数据并放入First.java中的数组中。den我需要Third.java从数组中读取,以查看wad Second.java是否已输入 如果我使用“First test=new First();”,我会再次得到一个空数组……那么我如何从Third.java中读取数据,以查看Second.java在First.java的数组中放了什么 提前感谢或者将数组设置为静态(根据@Jigar的建议-尽管由于单元测试和并发问题,不建议

我在First.java中有一个数组,假设den Second.java收集数据并放入First.java中的数组中。den我需要Third.java从数组中读取,以查看wad Second.java是否已输入

如果我使用“First test=new First();”,我会再次得到一个空数组……那么我如何从Third.java中读取数据,以查看Second.java在First.java的数组中放了什么


提前感谢

或者将数组
设置为静态
(根据@Jigar的建议-尽管由于单元测试和并发问题,不建议这样做),或者最好将
第一个
的正确实例传递给
第三个
。例如

class First {
  public Object[] array = ...;
}

class Second {
  public fillArrayAndPassItToThird(Third third) {
    First first = new First();
    // fill in the array...
    // then pass it to Third
    third.processArrayFromFirst(first);
  }
}

class Third {
  public void processArrayFromFirst(First first) {
    // process First.array
  }
}
或者,您可能希望只传递数组本身,而不是完整的
First
对象,以减少依赖性:

    third.processArrayFromFirst(first.array);

    ...

  public void processArray(Object[] array) {

使用,请参阅,对于包含数组的类,请尝试编写一些代码。然后在这里用代码片段发布您的问题。Singleton在这里绝对是过火了,是的。我认为Singleton在这里就是答案,原因1)他试图保持数组状态与任何模型(MVC)一样,2)为了处理静态数组,他需要更改其他类的实现,3)他在应用程序生命周期之前没有说过他需要数组,如果他使用静态数组,他需要销毁(设置null)以释放内存OP中没有提到“静态”一词。在有限的生命周期内存储数据的最明显和最安全的解决方案是将数据放入对象。嗯,你编写的代码是高度耦合的,这就是为什么我不选择它。OP非常有用,但这些东西因应用程序而异,需求也因需求而异,请参见jorudolph.wordpress.com/2009/11/22/singleton-Conservisions–Johannes Rudolph