У меня есть несколько структур, объявленных в файлах заголовков с множеством примитивных типов:
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
Jnaerator: 2d массив ⇐ JAVA
Программисты JAVA общаются здесь
1 сообщение
• Страница 1 из 1
Anonymous
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...