2017-06-14 5 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

これは私のバグのようです。私は[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'をどういう意味ですか? –

関連する問題