#java #java-native-interface
#java #java-native-interface
Вопрос:
Учитывая простой Java-класс, подобный этому:
class MyData {
public int a;
public int b;
public int c;
public int d;
}
И MyData data[]
что мне нужно передать в машинный код, лучше ли сделать что-то вроде этого:
for (MyData item : data) {
myNativeMethod(item.a,item.b,item.c,item.d);
}
Или лучше myNativeMethod(data)
и использовать GetArrayLength
, GetObjectArrayElement
и GetIntField
?
В этом случае «лучше» намеренно расплывчато. Производительность и ремонтопригодность — это обе проблемы.
Ответ №1:
В вашем конкретном случае проще передавать отдельные значения в качестве параметров. Однако это загромождает ваш Java-код, как только объект становится более сложным.
Сказал, что я не вижу большой разницы в предпочтении одного способа другому.