问题描述
- java 中方法调用的奇怪问题
-
public class Test {/** * @param args */ public static void main(String[] args) { List<String> lista = new ArrayList<String>(); List<String> listb = new ArrayList<String>(); Test tt = new Test(); listb.add("123456"); tt.tl(lista, listb); System.out.println(lista.size()); System.out.println(listb.size()); } public void tl(List<String> a,List<String> b){ a = b; System.out.println(a == b); } 打印结果 true 0 1
解决方案
你在函数中修改a b的值,不会反应到它们的实参上。这和你传一个整数作为参数,在函数中改变,是一样的。
解决方案二:
哪里奇怪了。??....
解决方案四:
你将a b 作为参数 , 在那个方法内对a赋值,此时a的作用域在这个方法内,当这个方法时他的作用域就发生了改变,也就是说a还是为空,所以才会用输出size位0
时间: 2024-10-02 19:46:12