0
Hashtable<String, Hashtable<String, HashSet<String>>> test =
new Hashtable<String, Hashtable<String, HashSet<String>>>();
test.put("1", new Hashtable<String, HashSet<String>>());
Hashtable<String, HashSet<String>> actual = test.get("1");
actual.put("3", new HashSet<String>());
//test.put("1", actual);
HashSet<String> expected = test.get("1").get("3");
if (expected == null) {
System.out.println("DIE");
}
위의 코드를 기반으로 DIE가 인쇄 될 것이라고 생각했습니다. 하지만 분명히 실제는 테스트 내부의 객체에 대한 참조입니다. 나는 실제 결과를 테스트에 "넣어야"한다는 인상을 받았다. 실제가 참조인지 여부에 대한 권위있는 문서가 있습니까?Hashtable get 함수에서 반환 값은 참조입니까?
-1000 - 객체는 Java에서 참조로 전달되지 않습니다. 객체 참조는 값에 의해 전달됩니다. 이것은 매우 중요한 차이입니다. –
당신이 옳은 말을하려는 것 같지만, Java에서는 "참조로 전달 된"것이 없습니다. 참조는 가치에 의해 전달됩니다. – ColinD
http://javadude.com/articles/passbyvalue.htm http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html http : //www.yoda.arachsys .com/java/passing.html 등등. 이 신화를 퍼터로 쓰지 마십시오. –