我猜java没有“通过引用传递”选项。但为什么?因为有时候这是非常需要的。为什么在java中没有办法通过引用传递
-2
A
回答
5
任何时候您觉得需要通过引用传递值,而是通过值传递引用。虽然Java没有“通过引用”机制,但它确实有参考。所以只要通过价值来传递这些参考。
0
我想你真正需要通过引用的唯一地方是从函数返回多个值,例如C中的out
关键字。要在Java中执行此操作,可以创建一个类来容纳对象或使用现有的由许多图书馆提供的配对课程。
同样,你可以通过引用到别的存根对象,然后你可以改变这个对象的引用,看看它是反映在外部:
public static class Holder<T> {
public T value;
public Holder(T value) {
this.value = value;
}
}
private Holder<Object> itsValueCanBeSeenAsPassedByReferencce
= new Holder<Object>("a");
public void doSomething(Holder<Object> holder) {
holder.value = "b";
}
0
在Java无论你 什么类型的参数通过相应的参数(原始变量或对象引用)将获得该数据的副本,这正是数值传递(即按值复制)的工作原理。 在Java中,如果调用方法将对象的引用作为参数传递给被调用的方法,则传入的引用将首先被复制,然后传递给被调用的方法。传入的原始引用和复制的引用都将指向同一个对象。因此,无论您使用哪个参考,您总是会修改相同的原始对象,这也是传递参考的工作方式。
相关问题
- 1. 有没有办法通过引用将成员函数传递给方法? [JAVA]
- 2. 为什么JavaScript通过引用传递?
- 3. 原因:为什么java不通过引用传递?
- 4. Java通过引用传递
- 5. Java通过引用传递
- 6. 在Java中通过引用传递?
- 7. 在java中通过引用传递?
- 8. 有没有什么办法通过Intent和Parcelable传递DOM对象?
- 9. 为什么在C中通过引用传递字符数组?
- 10. 为什么在PHP中通过引用传递?
- 11. 变量没有通过引用传递
- 12. 为什么片有时通过引用传递,有时是通过指针?
- 13. 有没有办法完成等同于通过引用传递“事件”?
- 14. 为什么不通过引用传递结构通用优化?
- 15. 有没有什么办法通过JNI将Java数组传递给C而不用复制它?
- 16. 为什么JavaScript变量没有通过引用传递的对象?
- 17. 通过Java中的值传递引用
- 18. 在java中传递值和通过引用传递
- 19. 有没有办法通过foreach语句传递变量/ $ _POST?
- 20. Java是通过值传递还是通过引用传递?
- 21. 当在一个方法中通过ref传递并且在C#中没有引用时有什么区别?
- 22. 在Java中传递引用和在C中传递指针有什么区别?
- 23. 有没有什么办法通过codeignitor中的uri段循环?
- 24. 有没有什么办法可以将javascript值传递给php?
- 25. 为什么我的对象没有通过segue正确传递?
- 26. 在java中有没有什么办法来使用和代替&&
- 27. 为什么我的变量通过引用传递?
- 28. 为什么Perl允许通过引用传递参数?
- 29. 为什么c#对象有一次像通过值传递和一次通过引用传递?
- 30. 有没有办法通过枚举在Rust中索引数组?
Java和C一样,纯粹是一种传值语言。您可以传递引用,但必须按值传递引用。很难想象为什么这是一个问题。为什么你需要通过引用传递值,当你可以通过值传递引用并且或多或少获得相同的效果? – 2012-04-15 08:49:41
我不认为超级用户是讨论语言概念的合适地方。 – Baarn 2012-04-15 08:50:57
顺便说一下,除了原子类型,java中的所有东西都通过引用传递。每个人都有包装类。 – Baarn 2012-04-15 08:53:03