通过反射获取列表属性里保存的对象类型

假设有个对象里有一个list<Object> listProperty 属性,要获取Object的类型:

Class<?> typeClass = field.getType();
if (List.class.isAssignableFrom(typeClass)) {
      Type fieldType = field.getGenericType();
       if (fieldType instanceof ParameterizedType) {
               ParameterizedType paramType = (ParameterizedType) fieldType;
               Type[] genericTypes = paramType.getActualTypeArguments();
               if (genericTypes != null && genericTypes.length > 0) {
                        if (genericTypes[0] instanceof Class<?>) {
                              Class<?> subType = (Class<?>) genericTypes[0];
                        }
               }
       }
}

其中subType就是Object的对象类型。

时间: 2024-10-13 13:40:10

通过反射获取列表属性里保存的对象类型的相关文章

java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包

首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; import java.io.Serializable; public class Creature<T> implements Serializable { private char gender; public double weight; private void breath() { Syste

c# 如何通过反射 获取\设置属性值

c# 如何通过反射 获取\设置属性值 //定义类public class MyClass{public int Property1 { get; set; }}static void Main(){MyClass tmp_Class = new MyClass();tmp_Class.Property1 = 2;Type type = tmp_Class.GetType(); //获取类型System.Reflection.PropertyInfo propertyInfo = type.Get

用反射获取类属性值并且赋值

/** * * @projectname 项目名称: cms-interface * @packageclass 包及类名: com.jy.modules.utils.CreditUtil.java * @description 功能描述: Object 可以是任意对象在不确定对象的时候获取值设置值 * @author 作 者: zhouzhiwei * @param 参 数: @param Requestobj * @param 参 数: @param obj * @param 参 数: @r

c# 如何通过反射 获取\设置属性值、

//定义类 public class MyClass{public int Property1 { get; set; }}static void Main(){MyClass tmp_Class = new MyClass();tmp_Class.Property1 = 2;Type type = tmp_Class.GetType(); //获取类型System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property

Java通过反射获取一个类里的静态常量

public class FieldReflactTest{    public static final String a="test";    protected int b;    private int c;    String d;    public static void main(String[] args){       Field[] fields=FieldReflactTest.class.getDeclaredFields();       for(Field

用反射获取构造函数带参数的实例对象

经过测试,如果显示声明有参构造函数,用反射实例化的时候,就需要传入构造函数的参数,如果同时声明了有参和无参构造函数 或只声明了无参构造函数则不需要传入参数,直接可以获取实例 //显示无参构造函数,如果只显示定义了有参构造函数,就不能使用如下代码反射创建实例对象            //var art = Assembly.LoadFrom(@"F:\Q\NET\qi\jlcms_sql_src\jlcms.Web\bin\jlcms.DAL.dll").CreateInstance(

原 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)

大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以遵循本文采用的各种方案. 本文内容 反射各方法的性能数据 反射的高性能开发建议 创建类型的实例 反射获取 Attribute 反射调用公共 / 私有方法 使用预编译框架 附本文性能测试所用的代码 所有反射相关方法 IsDefined 和 GetCustomAttribute 的专项比较 参考资料 反

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

Java反射获取对象VO的属性值(通过Getter方法)

有时候,需要动态获取对象的属性值. 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定.比如,这次User,下次可能是Company. e.g. 这次我需要做一个Excel导出的工具类,导出的批量数据是以List类型传入的,List里的对象自然每次都不同,这取决于需要导出什么信息. 为了使用方便,将对象的属性名与属性值存于Map当中,使用时就可以直接遍历Map了. 此次的思路是通过反射和Getter方法取得值,然后记录在一个Map当中. Kick start