gpt4 book ai didi

java - 如何将字符串变量值转换为变量名

转载 作者:行者123 更新时间:2023-12-01 11:31:35 25 4
gpt4 key购买 nike

大约有 10 种不同类型、不同大小的二维数组。例如:

int arr1[][];
float arr2[][];
long arr3[][];
String arr4[][];

在程序执行过程中,每个数组需要以不同的时间间隔打印。定义了一个方法print2DArray(),它以二维数组为参数计算行数和列数并打印数组。但由于数组具有不同的数据类型,因此需要为每种数据类型编写重写方法。

我们可以创建一个变量为:String arrName;并将其传递给方法 print2DArray() 并解码 String 以获取要打印的数组。例如:

如果方法被调用为:print2DArray(arr2);

方法定义为:

void print2DArray(String arrName){
**Some code to identify which array is reffered by arrName to print**
}

最佳答案

您需要使用 java 反射 api 来实现此目的。

代码有点像这样。

class CustomClass {
int[][] arr1 = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 8, 7 } };

public static void main(String[] args) {
CustomClass c = new CustomClass();

Field[] f = c.getClass().getDeclaredFields();

for (int i = 0; i < f.length; i++) {
if (f[i].getName().equals("arr1")) {
System.out.println(c.arr1[0][0]); // your own logic
} else if (f[i].getName().equals("arr2")) {
System.out.println(c.arr2[0][0]); // your own logic
} else if (f[i].getName().equals("arr3")) {
System.out.println(c.arr3[0][0]); // your own logic
} else if (f[i].getName().equals("arr4")) {
System.out.println(c.arr4[0][0]); // your own logic
}
}
}
}

关于java - 如何将字符串变量值转换为变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345002/

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