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 getFieldOrder(){ List fieldOrderList = new ArrayList(); 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; } }