为啥kotlin中的注解@JvmSynthetic对字段无效?

kotlin的文档中说@JvmSynthetic注解的原理是在字节码中添加ACC_SYNTHETIC访问标识符,因此java代码不能访问

// kotlin

open class BaseEntity{

@JvmSynthetic

var id: Long = 0

@JvmSynthetic

fun f() { }

}

可为什么只对方法起作用,用java代码仍然可以访问kotlin中被@JvmSynthetic修饰字段

// java

public class Main {

public static void main(String[] args) {

BaseEntity entity = new BaseEntity();

entity.f(); // Cannot resolve method 'f' in 'BaseEntity'

entity.getId(); // 正常访问

}

}

以上是 为啥kotlin中的注解@JvmSynthetic对字段无效? 的全部内容, 来源链接: utcz.com/p/944132.html

回到顶部