2017-06-14 75 views
0

我使用的註釋站點目標@get讓我困惑了一會兒。Kotlin反射無法訪問使用站點的目標註釋

class GetSiteTarget1(@get:Annotation val value: Int = 1); 
class GetSiteTarget2 { 
    val value = 1 
     @Annotation get() { 
      return field; 
     } 
}; 

以上不同的結果,這兩個類:

GetSiteTarget1::value.getter.annotations; // not has @Annotation 
GetSiteTarget1::value.getter.javaMethod!!.annotations // has @Annotation 

GetSiteTarget2::value.getter.annotations; // has @Annotation 
GetSiteTarget2::value.getter.javaMethod!!.annotations // has @Annotation 

類都已經標註了@Annotation

RuntimeVisibleAnnotations: 
    0: #10() // @Annotation 

誰能告訴我爲什麼?

+1

這看起來像是一個bug。我會在[Kotlin(KT)|上報告YouTrack](https://youtrack.jetbrains.com/issues/KT),如果還沒有這個問題。 – mfulton26

回答

1

使用站點目標註釋在kotlin-reflect中不可見。這是一個已知問題:https://youtrack.jetbrains.com/issue/KT-10837

+0

先生。我看到了它。 1月份報告了這個錯誤,爲什麼還沒有修復它? –

+1

該錯誤尚未修復,因爲它尚未被確認爲主要問題,並且存在相對簡單的解決方法。 –

+0

非常感謝。 「有一個相對簡單的解決方法」 - 你的意思是使用java'javaMethod.annotations'? –