Если вы используете JNA, вы, вероятно, захотите явно указать значения перечисления в Java. По умолчанию базовый тип перечисления Java на самом деле не предоставляет вам такой функциональности, вам нужно добавить конструктор для EnumSet (см. this и this ).
Простой способ кодировать перечисления C - это использовать открытые статические конечные константы, заключенные в класс с тем же именем, что и перечисление. Вы получаете большую часть функциональности, которую вы получаете от перечисления Java, но немного меньше накладных расходов для назначения значений.
Несколько хороших примеров JNA, включая приведенные ниже фрагменты (которые были скопированы), доступны здесь .
Предположим, ваш код C выглядит следующим образом:
enum Values {
First,
Second,
Last
};
Тогда Java выглядит так:
public static interface Values {
public static final int First = 0;
public static final int Second = 1;
public static final int Last = 2;
}