`
ttitfly
  • 浏览: 616254 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

反射机制应用(获得实际绑定的类型)

    博客分类:
  • java
阅读更多

通过反射机制,获得实际绑定的类型

泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型

比如:

java 代码
  1. package test;   
  2.   
  3. import java.lang.reflect.ParameterizedType;   
  4. import java.lang.reflect.Type;   
  5.   
  6. public class Parent<t></t><t></t> < T >{   
  7.     public void call(){   
  8.         Class clazz = getClass();    //实际子类clazz
  9.         Type genType = clazz.getGenericSuperclass();   
  10.         Type[] params = ((ParameterizedType) genType).getActualTypeArguments();   
  11.         Class domainClass = (Class) params[0];   
  12.     }   
  13. }  

 

java 代码
  1. package test;   
  2.   
  3.   
  4. public class Child extends Parent &lt;A&gt;{   
  5.   
  6. }  

 

 

java 代码
  1. package test;   
  2.   
  3. public class A {   
  4.   
  5.     public String name;   
  6.     public String passwd;   
  7.     public String getName() {   
  8.         return name;   
  9.     }   
  10.     public void setName(String name) {   
  11.         this.name = name;   
  12.     }   
  13.     public String getPasswd() {   
  14.         return passwd;   
  15.     }   
  16.     public void setPasswd(String passwd) {   
  17.         this.passwd = passwd;   
  18.     }   
  19.        
  20.        
  21. }  

 

 

java 代码
  1. package test;   
  2.   
  3. public class Test {   
  4.   
  5.     public static void main(String[] args){   
  6.         Child child = new Child();   
  7.         child.call();   
  8.     }   
  9. }  
分享到:
评论

相关推荐

    C#反射在实际应用中的实例代码

    可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。 下面我就以一个事例来说明反射在项目中的使用...

    Spring3.x企业应用开发实战(完整版) part1

    3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ApplicationContext介绍 3.4.3 父子容器 3.5 Bean的生命周期 3.5.1 ...

    Spring.3.x企业应用开发实战(完整版).part2

    3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ApplicationContext介绍 3.4.3 父子容器 3.5 Bean的生命周期 3.5.1 ...

    net学习笔记及其他代码应用

    30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。 答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System....

    wpf源码大全 精通C#3.0图书源码 详细源码 学习好用

    PropertyandTypeConvert 使用属性和类型转换器 PropertyElementSyntax 使用XAML的属性元素语法。 UnderstandXAMLDemo1 理解XAML的简单示例。 UnderstandXAMLDemo2 使用程序代码创建UI元素。 XAMLEvents ...

    asp.net知识库

    .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...

    Spring面试题

    3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. ...

    微软.NET Framework开源代码SSCLI

    01、vm - 包含了 CLI 核心实现,包括垃圾收集器、类装入器、类型系统、错误报告系统、应用程序域、配件、代理支持、反射、安全性和代码管理器。 02、csharp - 包含了使用 C++ 编写的 C# 编译器(csc.exe)和配件连接...

    JavaScript王者归来part.1 总数2

     7.2.3 反射机制--枚举对象属性   7.3 对象的构造   7.3.1 构造函数--一个双精度浮点数封装类的例子   7.3.2 缺省构造和拷贝构造   7.3.3 对象常量   7.4 对象的销毁和存储单元的回收   7.5 JavaScript...

    AppFramework数据库访问组件_代码生成插件_V1.1.rar

    &lt;br&gt;IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...

    AppFramework_V1.0

    &lt;br&gt;IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...

    AppFramework_V1.0_New

    &lt;br&gt;IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...

    超爽的自学课件(java)

    一般情况下,我们需要有意忽略一个对象的准确类型,让Java的动态绑定机制(多形性)为那一类型实现正确的行为。但在某些场合下,对于只有一个基础句柄的对象,我们仍然特别有必要了解它的准确类型是什么。拥有这个...

    asp.net面试题

    您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象...

    Spring.net框架

    t.InvokeMember(prop.propertyName, ........BindingFlags.SetProperty, null, o, new Object[] {p})利用反射机制对创建出来的对象设置属性值。 我们的Factory就是利用这种方式根据配置文件动态加载程序集,动态创建...

    亮剑.NET深入体验与实战精要2

    13.4.4 设计模式、条件外置及反射技术的应用 471 13.5 面向对象分析(OOA)的方法 475 13.6 面向对象设计的原则 478 13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481...

    亮剑.NET深入体验与实战精要3

    13.4.4 设计模式、条件外置及反射技术的应用 471 13.5 面向对象分析(OOA)的方法 475 13.6 面向对象设计的原则 478 13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481...

Global site tag (gtag.js) - Google Analytics