void main(String[] args)
{
byte[] a=null;
refVar(a);
}
void refVar(byte[] a)
{
a = new byte[3];
a[1] = 2;
a[2] = 2;
a[0] = 2;
}
不行出来我一看a还是null
关键是我在函数外不知道,数组的具体大小。
{
byte[] a=null;
refVar(a);
}
void refVar(byte[] a)
{
a = new byte[3];
a[1] = 2;
a[2] = 2;
a[0] = 2;
}
不行出来我一看a还是null
关键是我在函数外不知道,数组的具体大小。
在refVar中a 指向了一个新的数组对象,所以外面的a仍然是null
主要是不知道你的用意。在这种情况下只能说换成List来实现吧。
这些就是为了来代替数组的...
{
a = new byte[3]; //这里改变了函数内a的引用,但函数外a的引用没有被改变
a[1] = 2;
a[2] = 2;
a[0] = 2;
}换另一种思路吧
void main(String[] args)
{
byte[] a=null;
a = refVar();
}
byte[] refVar()
{
a = new byte[3];
a[1] = 2;
a[2] = 2;
a[0] = 2;
return a;
}
int m[] = new int[3];
m[0] = 0;
m[1] = 1;
m[2] = 2;
change(m);
System.out.println("m[0]=" + m[0]);
System.out.println("m[1]=" + m[1]);
System.out.println("m[2]=" + m[2]);
}
public void change(int n[]){
n[0] = 3;
n[1] = 4;
n[2] = 5;
}是你们用错了!