我已经声明了以下hashmap:
HashMap<Integer, Hive> hives
Hive是一个对象。
如果我调用“hives.get(2)”,它会在该位置返回对象Hive的副本还是对它的引用?
我的目标是修改该位置的Hive对象。如果它返回引用,我可以修改返回的配置单元并完成。但是,如果返回一个副本,那么我将不得不将该副本放回到hashmap中。
抱歉这个简单的问题。我试着四处寻找解决方案,但是我看到它的任何地方都只是说会返回值,它没有说它是值的副本还是对它的引用。
谢谢, 扎因
答案 0 :(得分:20)
它返回一个引用。除非另有说明,否则你几乎可以认为是这种情况。
答案 1 :(得分:8)
您将获得对它的引用 - Java对象始终通过引用传递。
答案 2 :(得分:5)
在java中除了byte,short,int,long,float,double和char之外的所有内容都通过引用传递。以上类型是java中唯一的原始类型,并按值传递。如果你想要按值复制,你需要在对象中创建自己的方法,返回自身的深层副本。