我使用的注释网站目标@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
有人可以告诉我为什么吗?
答案 0 :(得分:1)
使用网站定位注释在kotlin-reflect中不可见。这是一个众所周知的问题:https://youtrack.jetbrains.com/issue/KT-10837。