この質問をするのは初心者のように感じますが、以下の Set をメソッドに渡して新しい HashSet を指すと、それでも EmptySet として表示されるのはなぜですか? ローカル変数がスタックに割り当てられているためで、メソッドを終了すると新しい変数が吹き飛ばされますか? どうすれば同等の機能を達成できますか?
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>();
}
}