簡體   English   中英

具有C ++中的自定義值和構造函數的Java類型枚舉

[英]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接口,但是由於djinnipublic 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM