iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何使用反射获取list泛型
  • 768
分享到

Java如何使用反射获取list泛型

2023-07-05 07:07:19 768人浏览 安东尼
摘要

这篇文章主要介绍“Java如何使用反射获取list泛型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何使用反射获取list泛型”文章能帮助大家解决问题。通过属性来获取泛型的类型Field[

这篇文章主要介绍“Java如何使用反射获取list泛型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何使用反射获取list泛型”文章能帮助大家解决问题。

通过属性来获取泛型的类型

Field[] fields = bean.getClass().getDeclaredFields();for(Field f : fields){f.setAccessible(true);if(f.getType() == java.util.List.class){// 如果是List类型,得到其Generic的类型  Type genericType = f.getGenericType(); if(genericType == null) continue;  // 如果是泛型参数的类型   if(genericType instanceof ParameterizedType){   ParameterizedType pt = (ParameterizedType) genericType;//得到泛型里的class类型对象  Class<?> genericClazz = (Class<?>)pt.getActualTypeArguments()[0]; }   }

通过class对象来获取泛型类型

Type type = getClass().getGenericSuperclass();System.err.println("generic super class type:" + type);Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0];//trueType就是泛型的真实类型

一、getSuperclass 返回直接继承的父类(由于编译擦除,没有显示泛型参数)

二、getGenericSuperclass 返回直接继承的父类(包含泛型参数)

返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type。

如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅 ParameterizedType 声明。

如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。

如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。

列如

package cn.test;public class Test {    public static void main(String[] args) {        System.out.println("Student.class.getSuperclass()\t"                             + Student.class.getSuperclass());        System.out.println("Student.class.getGenericSuperclass()\t"                            + Student.class.getGenericSuperclass());        System.out.println("Test.class.getSuperclass()\t"                             + Test.class.getSuperclass());        System.out.println("Test.class.getGenericSuperclass()\t"                            + Test.class.getGenericSuperclass());        System.out.println("Object.class.getGenericSuperclass()\t"                             + Object.class.getGenericSuperclass());        System.out.println("Object.class.getSuperclass()\t"                             + Object.class.getSuperclass());        System.out.println("void.class.getSuperclass()\t"                             + void.class.getSuperclass());        System.out.println("void.class.getGenericSuperclass()\t"                             + void.class.getGenericSuperclass());        System.out.println("int[].class.getSuperclass()\t"                             + int[].class.getSuperclass());        System.out.println("int[].class.getGenericSuperclass()\t"                             + int[].class.getGenericSuperclass());    }}class Person<T> {}class Student extends Person<Test> {}

输出结果:

Student.class.getSuperclass() class cn.test.PersonStudent.class.getGenericSuperclass() cn.test.Person<cn.test.Test>Test.class.getSuperclass() class java.lang.ObjectTest.class.getGenericSuperclass() class java.lang.ObjectObject.class.getGenericSuperclass() nullObject.class.getSuperclass() nullvoid.class.getSuperclass() nullvoid.class.getGenericSuperclass() nullint[].class.getSuperclass() class java.lang.Objectint[].class.getGenericSuperclass() class java.lang.Object

关于“Java如何使用反射获取list泛型”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java如何使用反射获取list泛型

本文链接: https://www.lsjlt.com/news/350223.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何使用反射获取list泛型
    这篇文章主要介绍“Java如何使用反射获取list泛型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何使用反射获取list泛型”文章能帮助大家解决问题。通过属性来获取泛型的类型Field[...
    99+
    2023-07-05
  • Java使用反射获取list泛型过程浅析
    通过属性来获取泛型的类型 Field[] fields = bean.getClass().getDeclaredFields(); for(Field f : fields){ ...
    99+
    2023-02-28
    Java反射获取list泛型 Java反射获取属性类型
  • 如何使用反射获取私有类型?
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何使用反射获取私有类型?》,文...
    99+
    2024-04-04
  • 怎么使用java反射获取字段类型
    要使用Java反射获取字段类型,可以按照以下步骤进行:1. 获取对应类的Class对象,可以通过`Class.forName()`方...
    99+
    2023-10-10
    java
  • 怎么使用java反射获取属性
    要使用Java反射获取属性,可以按照以下步骤进行:1. 获取要操作的类的Class对象:```javaClass clazz = Y...
    99+
    2023-09-04
    java
  • Java中如何获取泛型类型信息
    这篇文章主要讲解了“Java中如何获取泛型类型信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中如何获取泛型类型信息”吧!根据使用泛型位置的不同可以分为:声明侧泛型、使用侧泛型。声...
    99+
    2023-07-05
  • java如何制作反射对象的获取
    小编给大家分享一下java如何制作反射对象的获取,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java.lang.Class对象的获取方式现金盘系统制作q<...
    99+
    2023-06-02
  • 如何使用反射提取类型参数
    问题内容 上下文:我正在编写一个通用自动映射器,它采用两种类型的结构,检查所述结构的每个字段是否有给定的标签,然后将值从源结构复制到目标结构,假设它们具有匹配的标签和类型。每当结构字段...
    99+
    2024-02-12
    overflow
  • Java反射如何获取字段属性值
    目录Java反射获取字段属性值案例反射对象获取属性和值凭借成string描述直接上代码Java反射获取字段属性值 反射获取Java类的所有字段,包括所有父类中的字段。 类自身的字段可...
    99+
    2024-04-02
  • 怎么用java反射获取对象
    这篇“怎么用java反射获取对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用java反射获取对象”文章吧。本教程操作...
    99+
    2023-06-30
  • 如何在Java 中使用泛型或反射机制对DAO进行抽象
    本篇文章为大家展示了如何在Java 中使用泛型或反射机制对DAO进行抽象,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java 中利用泛型和反射机制抽象DAO的实例一般的DAO都有CRUD操作,在每...
    99+
    2023-05-31
    java 泛型 反射机制
  • Java反射如何使用
    这篇文章将为大家详细讲解有关Java反射如何使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。反射相信刚接触Java的,第一句肯定会问什么是反射呢?反射有什么作用呢?为什么使用反射呢?首先反射是Java的...
    99+
    2023-06-25
  • 怎么用java反射获取字段值
    要使用Java反射获取字段的值,可以按照以下步骤进行操作: 获取类的Class对象:通过`Class.forName()`方法或者...
    99+
    2023-10-27
    java
  • 如何分析Java反射给泛型集合赋值问题
    今天给大家介绍一下如何分析Java反射给泛型集合赋值问题。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。泛型Java泛型简单描述下:比如创建一个List集合,我...
    99+
    2023-06-26
  • 怎么使用Go语言反射获取类型属性
    本篇内容主要讲解“怎么使用Go语言反射获取类型属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Go语言反射获取类型属性”吧!reflect.StructField 和 reflect....
    99+
    2023-07-02
  • 怎么使用java反射获取对象属性值
    使用Java反射获取对象属性值的步骤如下:1. 获取对象的Class对象,可以通过对象的getClass()方法获取。```java...
    99+
    2023-09-26
    java
  • Java如何通过反射获取Constructor、Field、Method对象
    目录前言使用反射技术获取构造器对象并使用使用反射技术获取成员变量对象并使用使用反射技术获取方法对象并使用总结前言 在实际开发中,通过反射可以得到一个类的完整结构,包括类的构造方法、类...
    99+
    2024-04-02
  • Java中如何通过反射获取类的信息
    这篇文章主要为大家展示了Java中如何通过反射获取类的信息,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Java中如何通过反射获取类的信息”这篇文章吧。Java的特点有哪些Java的特点有哪些1....
    99+
    2023-06-06
  • Java反射获取属性名、属性类型、属性值
    反射、泛型、JDBC 等基础结合起来很多时候可以使代码功能更加强大,适合更多的场景使用 一个通过反射获得属性名、属性类型、属性值的示例: import lombok.Builder;import lombok.Data;import lom...
    99+
    2023-09-30
    java 开发语言 reflect 反射
  • python泛型如何获取传入的类型
    Python中的泛型并不是强类型,因此无法直接获取传入的类型。 Python的类型注解主要是用来提供静态类型检查的,而在运行时并没有...
    99+
    2023-10-27
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作