我有多种方法,每个方法都包含对单个数组的引用。在有这样一个引用的一种方法中,我想将数组更改为null
。问题是,我不仅要更改对null
的引用,还要全部更改。 Java有办法吗?
public void moo()
{
boolean[] cow = new boolean[10];
baa(cow);
assertEquals(true, cow == null);
}
private void baa(boolean[] sheep)
{
*do stuff*
}
换句话说,我可以在
baa()
中对绵羊做什么,以便arr
是null
并且moo
中的assert为true?谢谢!
最佳答案
简短的答案是不,你不能。 cow
是对实际数组的引用,您要将cow
的副本传递给方法baa
。不使用某种欺骗手段就无法更改原始参考。
但是,您可以使用的一个技巧是编写自己的包装器类。这样,您可以将引用传递给对cow
的引用。
public class CowWrapper {
public boolean[]cow;
public CowWrapper(boolean[]cow){
this.cow=cow;
}
}
public void moo() {
CowWrapper cow=new CowWrapper(new boolean[10]);
baa(cow);
assertNull(cow.cow);
}
public void baa(CowWrapper sheep) {
sheep.cow=null;
}
关于java - 如何在Java中将对单个数组的所有引用更改为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8173644/