Java编程思想

Java编程思想——第十四章:类型信息

2019-06-06  本文已影响0人  代夫阿普曼

运行时类型信息使得你可以在程序运行时发现和使用类型信息。

Java让我们能在运行时识别对象和类的信息的两种方式:

  1. 传统的RTTI:它假定我们在编译时已经知道了所有的类型;
  2. 反射机制:它允许我们在运行时发现和使用类信息。

1.为什么需要RTTI

2.Class对象

Class对象就是用来创建类的所有的常规对象。

类似程序的一部分,每一个类都有一个Class对象。为了生成这个类的对象,运行这个程序的Java虚拟机将使用被称为 类加载器 的子系统。

Class.forName() 可以获取Class对象的引用。getName()产生全限定的类名,并分别使用 getSimpleName()getCanonicalName() 来产生不含包名的类名和全限定名。isInterface() 可以告诉你这个Class对象是否表示某个接口。还可以使用 getSuperclass() 方法查询其直接基类。

2.1 类字面常量
2.2 泛化的Class引用
2.3 新的转型语法

3.类型转换前先做检查

RTTI的第三种形式,就是关键字 instanceof。它返回一个布尔值,告诉我们对象是不是某个特定类型的实例。

3.1 使用类字面量
3.2 动态的 instanceof
3.3 递归计数

4 注册工厂

5.instanceof与Class的等价性

6.反射:运行时的类信息

7.动态代理

8.空对象

空对象最有用支出在于它更靠近数据,因为对象表示的是问题空间内的实体。

8.1 模拟对象与桩

9.接口与类型信息


06/06/2019 :created
上一篇下一篇

猜你喜欢

热点阅读