Jnaerator: 2d массивJAVA

Программисты JAVA общаются здесь
Anonymous
Jnaerator: 2d массив

Сообщение Anonymous »

У меня есть несколько структур, объявленных в файлах заголовков с множеством примитивных типов:
uint8_t, uint16_t, uint8_t [], uint8_t [], uint8_t [] [], ..., uint16_t [] [] [] , ..., uint32_t [] []
in java, когда я получаю данные struct, как преобразовать их в тип Java с их размером?
what int [3] , int [4] [4], ...
c: < /p>
typedef struct MyStructS {
uint8_t u8;
uint8_t u8Arr[5];
uint8_t u82dArr[5][10];
uint16_t u162dArr[3][5];
} MyStruct;
< /code>
jnaerator генерирует файл mystructs.java выглядит как: < /p>
public class MyStructS extends StructObject {
....
@Array({2, 3})
@Field(3)
public Pointer u82dArr() {
return this.io.getPointerField(this, 2);
}
}
< /code>
Как установить U82DARR и U162DARR в Java?MyStructS myStruct = new MyStruct();
myStruct.u8(new Integer(8).byteValue()); //set 8 to u8
myStruct.u8Arr().setInts(new int[]{1, 2, 3, 4, 5});
< /code>
Однако я не могу установить U82darr и U162darr As: < /p>
myStruct.u82dArr().setArray(new int[] {{1, 2}, {3, 4}});
myStruct.u162dArr().setArray(new int[] {{5, 6}, {7, 8}});`
< /code>
Я понимаю, что это потому, что mystruct.u82darr - это указатель, а mystruct.u162darr - это указатель, поэтому я должен использовать: < /p>
myStruct.u82dArr().setArray(new byte[] {{1, 2}, {3, 4}});
myStruct.u162dArr().setArray(new short[] {{5, 6}, {7, 8}}):
< /code>
Это потому, что я вручную проверял mystructs.java и нашел их тип данных. Есть ли в любом случае, я могу автоматически установить тип массива в соответствии с собственным типом данных участников?MyStructS s = MyLibrary.getMyStruct().get();
< /code>
Рассмотрение типа массива может отличаться, могут быть массивы, имеющие разные строки и Cols,
Как преобразовать его в 2D (или больше измерения) с размером, указанным в Заголовок?
и.e. преобразовать mystruct.u82darr () в int [5] [10] без проверки mystructs.java и укажите размер int [] []

Подробнее здесь: https://stackoverflow.com/questions/794 ... r-2d-array

Вернуться в «JAVA»