java - 如何删除传递给 Java 方法的对象?

标签 java pointers methods reference

我知道 Java 通过引用传递对象,因此当对象作为参数传递到方法中时,方法内参数本地完成的任何操作都会对实际对象完成。

void main(){
 String[] array1 = {"a","b","c"};
 someMethod(array1);
 print(array1.length);
}

void someMethod(String[] array){
 /..code here../
 array = null;
}

当尝试打印 array1.length 时,我希望得到一个空指针异常,因为我的方法将其设置为 null。然而这并没有发生。这有什么原因吗?

最佳答案

对象通过引用值传递(按值传递)而不仅仅是引用。

当您在 someMethod() 中将 null 设置为数组时,从技术上讲,它会将范围 someMethod 的数组设置为 null 不是 main 中的那个。

如果您还想将外部引用null,那么只需返回null,而不是分配null

我建议阅读此thread正确理解这个概念。

关于java - 如何删除传递给 Java 方法的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591294/

相关文章:

java - 具有固定宽度的 JScrollPane 中的 JTable

java - 从 ArrayList 中删除一个对象

c++ - 'this' 指针是什么?

C 指针奇怪的行为

c++ - 如何获取存储在 C++ 列表中的类对象?

JAVA:如何确保 1 方法在调用下一个方法之前已完成?

java - 将 JSON 对象传递给 Rythm 模板

java - Eclipse提示从localhost下载servlet

java - 从方法读取文件时出现无限循环

java - java方法中的数组,执行了什么?