创建一个成员函数 /method/,它同时生成基元数据类型的数组 - int、double、String



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

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中,一个方法不可能返回多个类型。您已经提到,您需要使用一种方法创建多种类型的数组。您可以在此处使用2种方法。

  1. 面向对象的方式 - 使用实例变量并在一种方法中初始化它们。它将如下所示

    公共类 主类 {

    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 方法来访问数组。

    返回数组数组
  1. - 可以将多个值作为复合类型数组返回。例如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];

现在,您可以根据需要使用数组。希望你清楚这个概念。

最新更新