问这个问题我感觉像个新手——但是为什么当我将下面的 Set 传递到我的方法中并将它指向一个新的 HashSet 时,它仍然以 EmptySet 的形式出现?是不是因为局部变量是在堆栈上分配的,所以当我退出方法时我的new被吹走了?我怎样才能实现功能等效?
import java.util.HashSet;
import java.util.Set;
public class TestMethods {
public static void main(final String[] args) {
final Set<Integer> foo = java.util.Collections.emptySet();
test(foo);
}
public static void test(Set<Integer> mySet) {
mySet = new HashSet<Integer>();
}
}