Как объявить вложенную структуру C в классе Java

Я пытаюсь сопоставить структуру ac с классом Java. Пока все работает нормально, но я не знаю, как отобразить структуру, в которой член имеет другую структуру.

В javadoc класса Struct есть пример структуры, содержащей указатель на ту же структуру (с использованием класса Reference32), но это не то, что мне нужно.

Я не могу найти дополнительную документацию о том, как этого добиться.

Это упрощенный пример:

// c types --------------------------------

enum Enum16{VALUE1, VALUE2, VALUE3};

struct t_composite {
   int number;
   char text[20];
   };

struct t_demo {
   char _char2[2];        
   char _char14[14];      
   int _int;
   float _float;
   double _double;
   enum Enum16 enum16;
   struct t_composite _otherStruct;
   };

// Java class -------------------------

public class Composite extends Struct {

public final Signed32 number = new Signed32();
public final UTF8String text = new UTF8String(20);
// ...
}

public class Demo extends Struct {

public enum EnumValues {
    VALUE1, VALUE2, VALUE3
};

public final UTF8String _char2 = new UTF8String(2);
public final UTF8String _char15 = new UTF8String(14);
public final Signed32 _int = new Signed32();
public final Float32 _float = new Float32();
public final Float64 _double = new Float64();
public final Enum32<EnumValues> _enum32 = new Enum32<EnumValues>(EnumValues.values());
//  public final Reference32<Composite> _otherStruct = new Reference32<Composite>();  // incorrect
public final Composite _otherStruct = new Composite(); // doesn't work

// ....
}

Переменная "_otherStruct" никогда не заполняется в Java. Я попытался определить переменную java как класс Composite вместо Reference32, но это не сработало.

Как правильно это сделать?

заранее спасибо

ОБНОВИТЬ

Как указал мне главный разработчик Жан-Мари Даутель, это полностью поддерживается за счет использования внутреннего метода:

public final Composite _otherStruct = inner(new Composite());

Это отлично работает

0 ответов

Другие вопросы по тегам