泛型与反射

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.在运行时调用任意一个对象的方法。

猜你喜欢

转载自blog.csdn.net/gogletech/article/details/79582658