使用Kotlin反射无法访问使用站点目标注释

时间:2017-06-14 17:28:17

标签: annotations kotlin

我使用的注释网站目标@get让我困惑了一段时间。

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

AND 这两个类都注明了@Annotation

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

有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:1)

使用网站定位注释在kotlin-reflect中不可见。这是一个众所周知的问题:https://youtrack.jetbrains.com/issue/KT-10837