package com.ard.utils.sdk.hiksdk.util.hikSdkUtil;
|
|
import com.sun.jna.Structure;
|
|
import java.lang.reflect.Field;
|
import java.lang.reflect.Modifier;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @ClassName: HIKSDKStructure
|
* @Description:
|
* 因为海康jna.jar比较老,结构体定义没有getFiledOrder,创建一个类继承 Structure
|
* 然后 HCNetSDK 类里所有继承 Structure 替换为 HIKSDKStructure 即可
|
* @Author: Administrator
|
* @Date: 2023年02月01日 11:44
|
* @Version: 1.0
|
**/
|
public class HIKSDKStructure extends Structure {
|
protected List<String> getFieldOrder(){
|
List<String> fieldOrderList = new ArrayList<String>();
|
for (Class<?> cls = getClass();
|
!cls.equals(HIKSDKStructure.class);
|
cls = cls.getSuperclass()) {
|
Field[] fields = cls.getDeclaredFields();
|
int modifiers;
|
for (Field field : fields) {
|
modifiers = field.getModifiers();
|
if (Modifier.isStatic(modifiers) || !Modifier.isPublic(modifiers)) {
|
continue;
|
}
|
fieldOrderList.add(field.getName());
|
}
|
}
|
return fieldOrderList;
|
}
|
}
|