Перечисление типа Java с пользовательскими значениями и конструктором в переполнении стека

У меня есть эта 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;
}
}

Я хотел бы создать действительный C ++ <-> Java интерфейс с использованием Джинни, но так как djinniПеречисления генерируют public enum в Java (правильно в моем случае) и enum class в C ++ (с int базовый тип), он не может работать.

Это вообще возможно? Или я должен создать Джинни interface с реализацией Java и C ++ с «привязками», сделанными вручную?

Заранее благодарю за любую помощь.

0

Решение

Этот вид enum Содержать много полей — довольно уникальная концепция для Java, в то время как Джинни раскрывает концепцию, которая является общей для всех языков и поддерживает перечисление, имеющее только значение int. Если вам нужен объект, который содержит несколько полей разных типов, в Джинни вам понадобится record, Вы можете использовать интерфейс, если хотите предоставить методы для пользовательского поведения, но не должны использовать их для чистых данных.

В любом случае, Джинни генерирует свои типы. Он не предназначен для прямого представления существующих типов на других языках, поэтому вам нужно написать собственную функцию преобразования, чтобы превратить ваш параметр в запись Джинни, если вы не хотите использовать запись напрямую.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]