[英]Preserving the Java-type of an object when passing it from Java to Jython
[英]Java-type enum with custom values and constructor in C++
我有此Java enum
需要與之交互:
// Parameter.java
public enum Parameter {
ExampleParameter1(45920L, 3, 127, ValueFormat.BINARY, true),
ExampleParameter2(45703L, 6, 6, ValueFormat.NUMERIC, true),
ExampleParameter3(73L, 4, 4, ValueFormat.ALPHANUMERIC, true),
ExampleParameter3(4512L, 2, 11, ValueFormat.ALPHANUMERIC, true);
( . . . )
private ValueFormat a
private int b;
private long c;
private boolean d;
private Parameter(long tag, int param, int min, ValueFormat format, boolean boo)
{
this.a = format;
this.b = min;
this.c = tag;
this.d = boo;
}
}
我想使用Djinni生成有效的C ++ <-> Java接口,但是由於djinni
的public enum
在Java中生成public enum
(在我的情況下是正確的)和C ++中的enum class
(具有int
底層類型),因此無法正常工作。
這有可能嗎? 還是我必須使用Java和C ++實現以及手動創建的“綁定”來創建Djinni interface
?
在此先感謝您的幫助。
這種包含許多字段的enum
對Java是一個非常獨特的概念,而Djinni公開了在所有語言中通用的概念,該概念支持僅具有int值的枚舉。 如果您想要的是一個包含多個不同類型字段的對象,那么在Djinni中,您將需要一個record
。 如果要公開用於自定義行為的方法,則可以使用接口,但對於純數據則不需要。
無論如何,Djinni都會生成自己的類型。 它不打算直接將現有類型公開為其他語言,因此,如果您不想直接使用該記錄,則需要編寫自己的轉換函數以將Parameter轉換為Djinni記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.