我需要在Kotlin生成的Java代码中禁用@NonNull/@Nullable
注释,因为一些注释适配器(代码生成器)无法正确处理某些带注释的字段
你知道怎么做吗?一些Kotlin注释或compilator指令
问题:kotlin类:
open class TestModel(
var test: ByteArray = ByteArray(0)
)
生成的java:
public class TestModel {
@org.jetbrains.annotations.NotNull()
private byte[] test;
@org.jetbrains.annotations.NotNull()
public final byte[] getTest() {
return null;
}
public final void setTest(@org.jetbrains.annotations.NotNull()
byte[] p0) {
}
public TestModel(@org.jetbrains.annotations.NotNull()
byte[] test) {
super();
}
public TestModel() {
super();
}
}
我想删除:@org.jetbrains.annotations.NotNull()
注释
你不能。生成的Java代码工具显示了类的Java代码。结果,它将包括@Nullable和@NotNull;它们是语言的核心部分。他们在那里处理无效安全问题。
val x: String
与@NotNull public String x
相同(需要初始化和分号才有效,但你明白了)。你不能自动从编译的代码中删除它们,除非你编写自己的编译器(但这将是一个真正的痛苦)。
如果由于注释而出现问题,请使用Java代替。注释没有添加到那里,你不会有任何问题。你需要混合语言,但它是专为它设计的,所以你应该没问题。