如何在类和方法中使数组可访问? 现在我有类似的东西
public class Class
{
public int[] array = new int[value];
public static int var;
public void callArray()
{
for(int x = 0; x < array.length; x++)
var++;
for(int x = 0; x < array.length; x++)
{
value[x] = var;
var = 0;
}
}
public void anotherMethod()
{
int[] array = new int[var];
for(int x = 0; x < array.length; x++)
System.out.println(array[x])
}
}
public class AnotherClass extends Class
{
int[] array = new int[var];
for(int x = 0; x < array.length; x++)
System.out.println(array[x]);
}
每当我做这样的事情时,我得到一个空指针或数组越界 如何在多个类和方法中提供数组?
答案 0 :(得分:3)
假设array
是该类的成员(实例变量) - 您应该使用它,而不是创建新的本地变量:
int[] array = new int[value];
正在创建一个新的局部变量,并在其上“工作”,而不是处理实例变量。
你真正需要的是:
public void callArray() {
array = new int[value];
//^^ note that we do not declare a new variable, and thus we use the instance variable
for(int x = 0; x < array.length; x++)
//code
}
答案 1 :(得分:2)
您需要将数组设为字段:
class MyClass {
int[] array = new int[5];
public void callArray()
{
for(int x = 0; x < array.length; x++)
//code
}
public void anotherMethod()
{
for(int x = 0; x < array.length; x++)
System.out.println(array[x])
}
答案 2 :(得分:0)
如果您需要从许多不同的类实例中对数组进行进程范围的访问,则可以将其包含在singleton类中。如果您只需要在一个实现“callArray”和“anotherMethod”方法的对象中访问数组,您可以简单地将数组声明为类字段:
public YourClass {
private int[] array = new int[value];
public void callArray()
{
for(int x = 0; x < array.length; x++)
//code
}
public void anotherMethod()
{
for(int x = 0; x < array.length; x++)
System.out.println(array[x])
}
}