繁体   English   中英

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

[英]How to disable @NonNull/@Nullable annotations in Kotlin generated Java code

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

你知道怎么做吗? 一些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。 注释不会在那里添加,您也不会有任何问题。 您需要混合使用各种语言,但是它是为此而设计的,因此应该没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM