鴻蒙OS 外層UnownedOuter

2020-10-15 09:37 更新

注釋一個(gè)類(lèi)以消除循環(huán)引用。

注釋內(nèi)部類(lèi)意味著刪除其對(duì)引用的外部對(duì)象的所有權(quán),從而使引用不包括在引用計(jì)數(shù)中。匿名內(nèi)部類(lèi)可以使用內(nèi)部方法進(jìn)行注釋。

此類(lèi)可以解決無(wú)法注釋外部類(lèi)實(shí)例的字段的問(wèn)題,因?yàn)楫?dāng) Java 內(nèi)部類(lèi)隱式捕獲該字段時(shí),沒(méi)有提供顯式聲明。如果內(nèi)部類(lèi)不能定義為靜態(tài)嵌套類(lèi),則必須使用外部類(lèi)實(shí)例,并且可以使用 UnownedOuter 注釋內(nèi)部類(lèi)以消除循環(huán)引用。

此類(lèi)的不正確使用可能導(dǎo)致與未擁有相同的結(jié)果,從而導(dǎo)致引用對(duì)象的早期釋放。

請(qǐng)參考以下示例代碼:

   class Outer{

 
       @UnownedOuter
       private class Innert {
           ...;
       }

 
       Private Runnable r = new Runnable() {
           @Override
           @UnownedOuter
           Public void run() {
               ...;
           }
       }
   }

 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)