【Java】+反射1+获取属性/成员变量 的名称及类型

扩展链接:【Java】+反射2+设置属性/成员变量 的值

封装的方法(可直接用)

复制代码
 1     /**
 2      * 功能:通过反射获取指定类的属性名称及属性类型
 3      *
 4      * @param clazz 目标类
 5      * @return 返回一个属性类型及属性名称(左:类型  右:名称)
 6      */
 7     static public List<Pair<Object, Object>> getClassFielddNameAndType(Class clazz) {
 8         Field[] fields = clazz.getDeclaredFields();
 9         List<Pair<Object, Object>> ofField = new ArrayList<>();
10         for (Field field : fields) {
11             String[] str = field.getType().getName().split("\\.");
12             System.out.println(String.format("属性:%s %s", str[str.length - 1], field.getName()));
13             ofField.add(Pair.of(str[str.length - 1], field.getName()));
14         }
15         return ofField;
16     }
View Code
复制代码

 

 

1、目标类

 

2、获取目标群类中的属性及属性的类型

 

3、代码

复制代码
 1     @Test
 2     public void testInterfaceParam() {
 3         List<Pair<Object, Object>> ofFields = getClassFielddNameAndType(FileCircleRequest.class);
 4         for (int i = 0; i < ofFields.size(); i++) {
 5             System.out.println(String.format("%s %s", ofFields.get(i).getLeft(),ofFields.get(i).getRight()));
 6         }
 7     }
 8 
 9     /**
10      * 功能:通过反射获取指定类的属性名称及属性类型
11      *
12      * @param clazz
13      */
14     static public List<Pair<Object,Object>> getClassFielddNameAndType(Class clazz) {
15         Field[] fields = clazz.getDeclaredFields();
16         List<Pair<Object,Object>> ofField = new ArrayList<>();
17         for (Field field : fields) {
18             String[] str = field.getType().getName().split("\\.");
19             System.out.println(String.format("属性:%s %s", str[str.length - 1], field.getName()));
20             ofField.add(Pair.of(str[str.length-1],field.getName()));
21         }
22 
23         return ofField;
24     }
复制代码
posted @   淡怀  阅读(2470)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示

目录导航