通过反射机制,获得实际绑定的类型
泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型
比如:
java 代码
- package test;
-
- import java.lang.reflect.ParameterizedType;
- import java.lang.reflect.Type;
-
- public class Parent<t></t><t></t> < T >{
- public void call(){
- Class clazz = getClass(); //实际子类clazz
- Type genType = clazz.getGenericSuperclass();
- Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
- Class domainClass = (Class) params[0];
- }
- }
java 代码
- package test;
-
-
- public class Child extends Parent <A>{
-
- }
java 代码
- package test;
-
- public class A {
-
- public String name;
- public String passwd;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPasswd() {
- return passwd;
- }
- public void setPasswd(String passwd) {
- this.passwd = passwd;
- }
-
-
- }
java 代码
- package test;
-
- public class Test {
-
- public static void main(String[] args){
- Child child = new Child();
- child.call();
- }
- }
分享到:
相关推荐
在实际应用中,反射技术常用于序列化、数据绑定、远程方法调用以及对象/关系数据映射等场景。现代软件开发中,动态获取和操纵类型信息已经成为了标志性的需求。 对于C++来说,添加反射机制的可能方式有多种,根据...
### Java中的反射机制 #### 一、反射的概念 反射的概念最早由Smith于1982年提出,是指程序能够访问、检测和修改其自身状态或行为的能力。这一概念的引入促进了计算机科学领域对反射性的研究,并迅速被应用于程序...
《反射机制在Android开发中的应用》 随着Android系统在智能手机领域的普及,越来越多的开发者投身于Android应用开发。至2013年,Android市场应用数量已达到80万,但在开发过程中,有时会遇到API限制导致优秀的软件...
在实际应用中,Java反射机制常用于以下场景: - 动态加载类:在不确定具体类名的情况下,可以根据字符串加载并实例化类。 - 框架设计:Spring框架中的依赖注入,AOP(面向切面编程)等都是基于反射实现的。 - 测试...
反射机制在实际开发中有广泛的应用场景,例如: - **动态代理**:通过反射机制可以创建对象的动态代理,实现在运行时动态绑定行为。 - **框架设计**:许多流行的Java框架如Spring、Hibernate等都大量使用了反射机制...
DOM4J和反射机制在实际项目中常常结合使用,尤其是在处理配置文件或XML数据绑定时。例如,在Spring框架中,XML配置文件被解析为DOM4J的Document对象,然后通过反射机制创建并初始化bean。 当解析到一个bean定义时,...
总结,C#的反射机制使得我们能够在运行时动态地访问和操作类型及其成员,这对于处理动态数据绑定、插件架构、元编程等场景非常有用。在本文中,我们学习了如何利用反射将数据库字段与UI控件进行绑定,从而减少手动...
反射机制则是Java语言提供的一种强大的元数据访问能力,允许程序在运行时检查类、接口、字段和方法的信息,甚至可以动态调用方法和创建对象。在Swing编程中,反射的应用可以帮助开发者实现更加灵活和动态的UI设计。 ...
在Java等面向对象的语言中,反射机制被广泛用于实现动态类型处理、元数据访问以及在未知类型的情况下执行特定操作等功能。在这个“反射机制数据库万能查询代码简化”的主题中,我们将深入探讨如何利用反射来优化HQL...
2. **灵活性**:反射机制使得程序可以更加灵活地处理不同类型的对象,这在很多框架(如Spring框架)中被广泛应用。 **缺点**: 1. **性能问题**:使用反射会增加程序的执行时间,因为它涉及到类的查找和动态绑定的...
反射机制是基于Java的动态类型特性的,它使得Java具备了“元编程”的能力,即在运行时分析和操作程序的能力。以下是对Java反射机制的详细介绍: 1. 获取对象的属性 在Java中,可以通过反射机制获取对象的属性。`...
在Java编程中,反射机制是一种强大的工具,它允许我们在运行时检查类、接口、字段和方法的信息,并且能够在运行时创建和操作对象。通过反射,我们可以实现动态表单,即根据业务需求动态生成和填充表单。这篇博客...
反射机制提供了对Java类和对象的底层访问,使得开发者能够在不知道对象具体类型的情况下创建和操作对象,增加了代码的灵活性和可扩展性。 首先,我们要理解反射的基础——`Class`类。`Class`类是Java反射机制的核心...
Java中的反射机制是其强大的特性之一,它允许程序在运行时动态地获取类的信息并操作对象。这一机制使得Java代码能够检查自身结构,包括类、接口、字段和方法,甚至能够在不知道具体类型的情况下创建和调用对象。反射...
总之,Java反射机制极大地增强了程序的灵活性和可扩展性,它允许我们在运行时检查和操作类的内部结构,实现动态绑定和代码生成等功能,这对于框架开发、插件系统、测试工具等方面具有重要的应用价值。然而,由于反射...
本文将深入探讨C#中的反射机制及其在实际软件开发中的应用。 反射是.NET Framework提供的一种强大功能,它允许运行时的代码访问、检查和修改其他代码的能力。在C#中,反射主要通过`System.Reflection`命名空间中的...
论文《C++反射机制的一种简单实现》可能详细介绍了这种实现方法,包括如何定义元对象,如何存储和检索类型信息,以及如何利用这些信息进行动态操作。论文可能还讨论了性能影响和设计决策,以及如何在实际项目中有效...