分配一個對象爲空
回答
您永遠不能分配給對象。你所有的都是原始的和參考。引用是null或指向適當類的對象的指針。
Java參數按值傳遞。你的被調用的方法得到了一個引用的副本。它使該參考爲空。調用方法具有自己的引用,它不受任何傳遞副本的賦值影響。該引用仍然指向該對象。
參數在Java方法「傳址值」,這意味着要傳遞的對象引用的副本到方法。分配此引用時,空值將在方法調用內更改其值,但對該方法外的引用不做任何操作,因爲它是副本。用代碼示例:
void doSomething(final String input) {
input = null;
System.out.println("Input is: " + input); // prints null
return;
}
final String name = "Bob";
doSomething(name);
System.out.println("Name is: " + name); // prints 'Bob'
我想'final'妨礙了你的答案的理解。另外:你不能重新分配一個'final'變量(第2行)。 – kay
是的,這確實是重點。在極少數情況下,您發現您需要重新分配一個變量,只是不要最終聲明它。 – Perception
時實例化對象,並把它傳遞給函數,並且該函數內你重新分配爲空或什麼,在主叫側它不被反射作爲參數是傳值的參考(複製在對象的情況下),在呼叫方它仍然指向舊對象。如果要限制在方法中重新分配,可以在方法參數
中使用final
關鍵字
當您將對象引用傳遞給函數(Java始終調用方法)時,在方法作用域中將創建一個新引用堆棧內存,但是它們指向堆內存中的同一個對象。所以如果你給新引用指定了null,那麼只有這個引用指向該對象的鏈接是break,它不會影響前一個。
當一個參數是一個對象時,它通過引用傳遞;當一個參數是一個基本類型時,它通過值傳遞。引用是指向實際對象的2字節變量。 – BlackJoker
在Java中,它從未**通過引用傳遞 –
- 1. 無法爲對象分配空間dbo.table
- 2. 分配對象屬性爲另一個對象
- 3. 節點對象 - 爲空節點對象分配值
- 4. 分配空數組到空的JSON對象全部爲空
- 5. 從另一個對象分配一個對象屬性
- 6. C#用一個類對象分配一個子類對象
- 7. 分配一個對象的值在另一個對象
- 8. 分配整個對象爲智者
- 9. 如何分配一個對象陣列
- 10. 在對象上分配一個值
- 11. 重新分配一個對象屬性
- 12. 分配一個對象引用變量
- 13. 錯誤:無法分配一個對象
- 14. 分配對象到另一個線程
- 15. C++當分配一個私人對象
- 16. 分配內存到一個對象c#
- 17. 如何將多個對象分配給另一個類/對象?
- 18. 分配現有或空的對象
- 19. 使用Javascript - 分配空對象
- 20. 分配對象「這個」
- 21. 爲什麼EnumMap爲空值分配Object類對象?
- 22. 爲返回的IQueryable分配可爲空的對象
- 23. 分配對象時分配
- 24. 將一個對象拆分爲兩個
- 25. NSubstitute返回一個對象爲空
- 26. 檢查一個對象是否爲空
- 27. 對象分配
- 28. 對象分配
- 29. 檢查一個對象是否爲空我的分區
- 30. 從另一個對象中分配新的對象值
添加代碼,以獲得更好的幫助 –