Hashtable get函数的返回值是一个参考?

时间:2010-11-19 00:55:28

标签: java hashtable

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会打印出来。但显然,实际上仍然是对测试内部对象的引用。我的印象是我必须“把”放回到实际测试中(由已注释掉的行显示)。是否存在关于实际是否为引用的权威文档?

1 个答案:

答案 0 :(得分:2)

对象始终作为Java中的引用传递。来自chapter 4 of JLS

  

引用类型是类类型,接口类型和数组类型。 ...参考值(通常只是引用)是指向这些对象的指针。