【问题标题】:Processing an array from a class in another class处理来自另一个类中的类的数组
【发布时间】:2014-04-03 00:00:08
【问题描述】:

我在处理单独的类文件 (ProcessScores.java) 中的类文件 (Scores.java) 中的数字数组时遇到了困难。

在 ProcessScores.java 的主要空白中添加 Scores.main(); 确实会打印数组,但我使用输出的尝试失败了。例如,int[] numbers = Scores.main(); 抛出错误“不兼容的类型。必需:int[],找到:void”。我知道我正在调用 Scores 课程中的主要空白,所以我的问题是......

如何以我可以使用的方式将 Scores 类的输出导入 ProcessScores 类?

【问题讨论】:

  • 好吧,main() 方法总是无效的,因为它是静态的,你不能用它来返回结果。您可以尝试编写其他返回某些内容的静态方法
  • 你能展示你的类的结构吗?我建议为Scores 编写一个类似int[] getNumbers() 的函数,该函数将返回存储在Scores 类中的数字数组。然后你可以在你的ProcessScores main 方法中做int[] numbers = Scores.getNumbers()

标签: java arrays


【解决方案1】:

您有 1 个项目,其中有 2 个类,每个类都包含一个主类?一个项目应该只有 1 个主类。试试这样的:

public class A {
    public static void main(String[] args) {
        B b = new B();
        int[] array = b.getArray();
        // Do something with array
        b.setArray(array);
    }
}

public class B {
    private int[] array;
    public B(){
        array = {0,1,2,3,4}; // Dummy data
    }

    public int[] getArray(){
        return array;
    }

    public void setArray(int[] array){
        this.array = array;
    }
}

【讨论】:

    【解决方案2】:

    main() 方法是无效的(不返回任何内容),并且由于它是静态的,因此您不能使用它来返回结果。您可以尝试编写其他返回某些内容的静态方法。

    尝试创建另一个返回 int[] 的公共静态方法并改用它。

    例如

    public static int[] mymethod(){
      ...
    }
    

    然后这样称呼它

    int[] result = Scores.mymethod();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多