猿问

如何在 Kotlin 生成的 Java 代码中禁用 @NonNull/@Nullable 注释

我需要@NonNull/@Nullable在 Kotlin 生成的 Java 代码中禁用注释,因为某些注释适配器(代码生成器)无法正确处理某些带注释的字段


你知道怎么做吗?一些 Kotlin 注释或编译器指令


问题: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()注释


哆啦的时光机
浏览 331回答 1
1回答

慕标琳琳

你不能。生成的 Java 代码工具显示类的 Java 代码是什么样的。因此,它将包含@Nullable 和@NotNull;它们是语言的核心部分。他们在那里处理空安全。val x: String与@NotNull public String x(需要初始化和分号有效,但您明白了)相同。您不能从编译后的代码中自动删除它们,除非您编写自己的编译器(但这会很痛苦)。如果您因为注释而遇到问题,请改用 Java。注释不会添加到那里,您不会有任何问题。你需要混合语言,但它是为它设计的,所以你应该没问题。
随时随地看视频慕课网APP

相关分类

Java
我要回答