18

我已经声明了以下哈希图:

HashMap<Integer, Hive> hives

Hive 是一个对象。

如果我调用“hives.get(2)”,它将返回该位置的对象 Hive 的副本还是对它的引用?

我的目标是修改该位置的 Hive 对象。如果它返回引用,我可以修改返回的配置单元并完成。但是,如果返回一个副本,那么我必须将该副本放回哈希图中。

对不起这个简单的问题。我尝试四处寻找解决方案,但在我所看到的任何地方,它都只是说将返回该值,并没有说明它是该值的副本还是对它的引用。

谢谢,赞恩

4

3 回答 3

24

它返回一个引用。除非另有说明,否则您几乎可以假设是这种情况。

于 2009-04-19T04:44:48.903 回答
9

您将获得对它的引用——Java 对象总是通过引用传递。

于 2009-04-19T04:45:00.273 回答
7

在 Java 中,除了 byte、short、int、long、float、double 和 char 之外的所有内容都是通过引用传递的。以上类型是java中唯一的原始类型,并且是按值传递的。如果您想要按值复制,则需要在对象中创建自己的方法,该方法将返回自身的深层副本。

于 2009-04-19T05:13:37.740 回答