gpt4 book ai didi

java - 创建一个成员函数/方法/,它同时创建原始数据类型数组 - int、double、String

转载 作者:行者123 更新时间:2023-12-02 00:50:26 25 4
gpt4 key购买 nike

我有一个家庭作业任务,要求我只编写 1 个方法(MainClass 类的成员),该方法同时创建多个类型的数组 - 仅使用此方法。我尝试创建一个返回相应类型的方法,但只能使用一种类型的数组来完成(请参阅注释代码/function/)。我的问题是如何创建一种模板化函数,它在我的尝试低于时立即返回所有类型,/但遗憾的是不起作用/?

   import java.lang.reflect.Array;
import java.sql.SQLOutput;
import java.util.Arrays;

public class MainClass {
//ще направим отделни методи за класовете
/*public int [] returnArr(){
int [] ar = new int[10];
return ar;
}*/
public void createArray(){
//here I create more than one type of array:
int []ar = new int[10];
String[] str = new String[10];
double [] dbl = new double[10];
}
}
class Test{
public static void main(String[] args) {
MainClass mcl = new MainClass();
/*int [] ia = mcl.returnArr();
for (int i = 0;i<10;i++){
Arrays.fill(ia,0,9,8);
}*/
mcl.createArray();
//here the ar[] array is not accessible
Arrays.fill(ar,0,9,0);
for (int i:ar){
System.out.println(i);
}
}
}

最佳答案

我希望您正在练习 OOP。在 Java 中,一个方法不可能返回多种类型。您已经提到,您需要使用单一方法创建多种类型的数组。您可以通过此处的两种方法进行操作。

  1. 面向对象的方式 - 使用实例变量并在一个方法中初始化它们。它会像下面这样

    公共(public)类主类{

    private int[] intArray;
    private String[] strArray;
    private double[] dblArray;
    public void createArray() {
    this.intArray = new int[10];
    this.strArray = new String[10];
    this.dblArray = new double[10];
    }

    }

然后您可以使用一些 getter 方法来访问数组。

  • 返回数组的数组 - 您可以将多个值作为复合类型数组返回。例如java.lang.Object数组。由于 Object 是 Java 中所有内容的父类,因此 Object 数组可以保存任何类型。那么你的方法看起来像
  •  public Object[] createArray() 
    {
    int[] intArray = new int[10];
    String[] strArray = new String[10];
    double[] dblArray = new double[10];
    Object[] returnArray = new Object[] { this.intArray, this.strArray, this.dblArray };
    return returnArray;
    }

    现在在返回的对象数组中

    Object[] arrays = mcl.createArray();

    // arrays[0] is an integer array, arrays[1] is string array and so on.
    int[] arr = arrays[0];

    现在您可以按照您需要的方式使用数组。希望您清楚这个概念。

    关于java - 创建一个成员函数/方法/,它同时创建原始数据类型数组 - int、double、String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864551/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com