| package com.ruoyi.device.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; | 
|     } | 
| } |