如何在Kotlin中创建没有支持字段的外部属性?
我正在使用 JNI 在 Kotlin 中为 C++ 库创建包装器。为了在 C++ 库中实现一个属性,我需要将属性的 getter 和 setter标记为externalcreate ,getX并将setX方法标记为native,如 Kotlin 文档中所述。
虽然这按预期工作,但这也会为 property 生成一个支持字段,这在我的情况下没有用,因为该值仅位于本机端。
例如,我有以下类,其中包含一个外部属性:
class Something {
var name: String
external get
external set
}
@MetadataIntellIJ中的“Kotlin Bytecode”工具在Java中反编译生成的字节码(去掉注解)如下:
public final class Something {
@NotNull
private String name;
@NotNull
public final native String getName();
public final native void setName(@NotNull String var1);
}
如您所见,存在不需要的name字段。有没有办法摆脱这个?