我正在为类项目创建一些辅助方法。我想要创建的方法之一是简单地创建一个int类型的数组,称为'name','size'大小。问题出现在我尝试使用'name'参数创建数组的方法体中。
public int[] createArray(String name, int size){
int[] name = new int[size];
}
除了在范围内定义了“变量”名称之外。错误,我认为问题是我不能在构造数组时使用变量。如果是这种情况,我不应该在这里使用'String name'作为参数吗?我可以做某种解析/转换吗?最后,我必须使用/做什么来将方法调用中的参数传递给“int [] _____ = new int [size];”?
我可能只是在main方法中制作我需要的2个数组,但我想知道我做错了什么。
最佳,
科里
答案 0 :(得分:2)
在
中重命名变量name
int[] name = new int[size];
到
int[] otherName = new int[size];
它应该可以正常工作。由于范围中有另一个具有相同名称的变量,因为String name
被用作方法的参数。
如果您想使用该参数实际命名您的数组变量,那么您可能会尝试在运行时修改源代码,但您不能。也就是说,变量String name
似乎不再适用于该方法。
答案 1 :(得分:0)
你尝试做的事情是不可能的(除非你诉诸"反思"我不会向相对初学者推荐)。
您希望创建一个数组变量,其名称要在运行时决定。你想做类似
的事情int[] array1;
int[] array2;
createArray("array1", 17);
createArray("array2", 25);
变量名array1
和array2
在编译时存在。程序运行时,它们不再可用(对于普通的Java代码)。要传递给"array1"
方法的"array2"
和createArray()
参数是字符串,Java运行时不会将这些字符串中的字符与数组变量相关联。
您尝试实现的方法的Java方式是:
int[] array1 = createArray(17);
int[] array2 = createArray(25);
private int[] createArray(int size) {
return new int[size];
}