泛型与反射

本文深入探讨了泛型的概念及应用,包括编译时如何用具体类型替换泛化类型,以及在继承过程中如何利用泛型使代码更具通用性。同时,文章详细介绍了Java反射机制的功能,如运行时如何获取类的属性和方法,以及如何调用对象的方法。

1、泛型

1、编译时干的事,用具体的类型代替泛化的类型。
2、和类的创建没关系,就是相当于存在类里的一个信息(或者说一个属性)。
3、有的泛型声明在类上,有的泛型声明在方法上,作用域不同。
4、在继承的时候使用泛型有两种方式:

  • 要么在子类中也声明泛型, public class Generic<T> extends A<T>
  • 要么在子类中将泛型写成具体类型,public class Generic extends A<具体类型>

(在继承中使用泛型的意义是:在子类中才使类型得到具体化,使父类的代码更加通用)

5、A<T>应该如何理解(可以理解成:这里的<T>不是区分类型的,而是区分实例的):
这里写图片描述

6、A<user>A<book>是一个类(类型擦除),不过Spring的“泛型依赖注入”(@Autowire)可以根部泛型的不同的具体类型实现不同的注入。A<user>调用A<user> 的方法,A<book>调用A<book>的方法。

2、反射

运行时干的事,

  • 对于任意一个类,知道这个类有哪些属性和方法
  • 对于任意一个对象,调用它的任意一个方法

Java反射机制主要提供了以下功能:

 * 1.在运行时判断任意一个对象所属的类。

 * 2.在运行时构造任意一个类的对象。

 * 3.在运行时判断任意一个类所具有的成员变量和方法。

 * 4.在运行时调用任意一个对象的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值