java Kotlin生成priavate字段:@MyAnnotation字段不能是私有的或静态的
我正在学习科特林
我开发了一个基于注释处理的Java库。这个库在Java上运行得非常好。我的库包含用户可以放在类字段上的注释。但是为了处理该字段,该字段不应该是private
或static
@MyAnnotation
private String userName;
这将引发一个编译时错误,建议用户删除要由我的库的注释处理器处理的private
修饰符
一旦用户删除private
,它就开始工作了
现在以科特林为例
@MyAnnotation
var spUserName : String? = null
这将生成如下所示的私有字段
...
private java.lang.String spUserName;
...
所以我的注释处理器抛出了一个编译时错误
搜索完web后,在该字段上添加@JvmField
的工作方式与下面的完全相同
@JvmField
@MyAnnotation
var spUserName : String? = null
但我不希望我的用户在我的注释之上再添加一个注释。如果有这么多的字段,它会增加代码
请建议任何其他避免@JvmField
的替代方案
所以我的问题是:如何在Kotlin中不使用@JvmField
而使我的字段非私有
# 1 楼答案
添加
public
修饰符我不知道为什么我删除了这个答案。如果您访问了this link,您将看到类内成员的默认修饰符是
private