鴻蒙OS 弱

2020-10-15 10:07 更新

注釋弱參考對象。

此類提供了使用弱引用注釋字段的方法。此類字段可由 RC / GC 回收?;厥者@些字段后,讀取它們時將返回 null。這允許字段由代碼邏輯正確處理。

以 HashMap 的 entrySet 為例。內(nèi)部類和外部類對象形成循環(huán)引用。因此,您不能使用 UnownedOuter 來注釋內(nèi)部類,因為 entrySet 可以作為 Set 傳遞給 HashMap 的外部。在這種情況下,您可以將 entrySet 注釋為弱引用。如果 entrySet 被回收,則可以使用 entrySet()方法返回?zé)o狀態(tài) entrySet 對象。

請參考以下示例代碼:

  1. public class HashMap<K,V> extends AbstractMap<K,V>
  2. implements Map<K,V>, Cloneable, Serializable {
  3. ...;
  4. @Weak
  5. transient Set<Map.Entry<K,V>> entrySet;
  6. ...;
  7. public Set<Map.Entry<K,V>> entrySet() {
  8. Set<Map.Entry<K,V>> es;
  9. return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;
  10. }
  11. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號