我猜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