美文网首页
十四章-类型信息

十四章-类型信息

作者: 木书 | 来源:发表于2017-08-15 17:32 被阅读26次

一、在java中识别运行时对象和类的信息的两种方式:

1.RTTI,它假定我们自编译时已经知道了所有的类型;

2.反射机制,它允许我们在运行时发现和使用类的信息。

二、Class对象

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

2.为了生成Class对象,虚拟机将使用被称为“类加载器”的子系统。

3.生成Class对象的引用的两种方式:

#Class.forName();

#使用类字面常量:XX.class(基本数据类型的包装器类还可以使用XX.TYPE,编程思想建议都使用XX.class,以保持一致性)

二者区别:使用.class来创建对Class对象的引用时,不会自动地初始化该Class对象,初始化被延迟到了对静态方法(构造器隐式地是静态的)或者非常数静态域进行首次引用时才执行。

4.为了在使用泛化的Class引用时放松限制,可以使用通配符。

通配符就是"?",表示任何事物。

再此之上加点限制就是,Class表示T的父类,Class表示T的子类。

三、RTTI形式

#传统的类型转换(Shape),可能会抛出异常。

#Class对象

#关键字instanceof

如下,进行向下转型前,如果不知道这个对象什么类型,使用instanceof很重要,否则可能会得到一个ClassCastException异常。

Class.isInstance()方法使我们不在需要instanceof表达式

isAssignableFrom:判定此Class对象所表示的类或接口与指定的Class参数所表示的类或接口是否相同,或是否是其超类或超接口。如果是则返回true,否则返回false。如果该Class表示一个基本类型,且指定的Class参数正是该Class对象,则该方法返回true,否则返回false。

四、关于反射

Class的getMethod()和getConstructors()方法分别返回Method对象的数组和Constructor对象的数组。

五、动态代理

Java的动态代理实际上就是在一般的代理模式上实现了InvocationHandler接口

相关文章

  • 十四章-类型信息

    一、在java中识别运行时对象和类的信息的两种方式: 1.RTTI,它假定我们自编译时已经知道了所有的类型; 2....

  • 《JAVA编程思想》学习笔记:第14章(类型信息)

    第十四章、类型信息 14.1 RTTI RTTI:(Runtime Type Identification)运行阶...

  • 第十四章:类型信息

    运行时类型信息(RTTI)使得你可以在程序运行时发现和使用类型信息。 Class对象 每一个类都有一个Class对...

  • 第十四章类型信息

    java在运行时识别对象和类信息主要有2中方式:1.传统的RTTI(Run-Time Type Indentifi...

  • 第十四章-类型信息--Class对象

    在Java的思想里面,万事万物皆对象: 其中类也是对象,所有的类都是一个Class对象,可以通过 类名.class...

  • 类型信息

    RTTI# 这个类型在编译时必须已知,这样才能用RTTI识别它,并利用这些信息做一些有用的事。Class.forN...

  • 类型信息

    运行时的类型信息使得你可以在程序运行时发现和使用类型信息 为什么需要RTTI(Runtime Type Infor...

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

    运行时类型信息使得你可以在程序运行时发现和使用类型信息。 Java让我们能在运行时识别对象和类的信息的两种方式: ...

  • mybatis

    第四章 Mybatis输入类型和结果类型 第1章 1.1 parameterType****(输入类型) 1.1....

  • 类型信息-01

    运行时类型信息1.RTTI,它假设我们在编译时已经知道了所有的类型信息。使用rtti可以查询基类引用所指向的对象的...

网友评论

      本文标题:十四章-类型信息

      本文链接:https://www.haomeiwen.com/subject/noisrxtx.html