RTTI

作者: kill_ec94 | 来源:发表于2019-08-28 21:34 被阅读0次

RTTI:run time type identification,运行时类型识别;

首先这个是个啥东西,其实就是字面意思,在运行期间获取类型的信息。

那么运行时类型确认,究竟有什么作用呢?

书上说主要是四个方面:

1.传统的类型转换:

比如(Integer) aaa,类似这种类型转换,那么RTTI就是确保了类型转换的正确性,如果说有错误的话,那么就会直接抛出一个ClassCastException异常;

2.获取代表对象类型的Class对象:

首先来看最基本的class对象,类型信息在运行时就是通过Class对象所表示的,我们来看下这个对象的方法,

是的Class也是Object对象,它有几个非常经典的方法:

forName();

newInstance();

getFileds();

getMethods();

看出来了吧,如果想在程序运行的时候,获取到某个类的一些相关信息。这个时候它就可以派上用场,举个简单的例子,如果你拿到了某个类,想获取这个类下面的所有方法,就可以利用Class对象提供的方法去做这个事情;

3.Instance of

这个是另一种表现形式,就是用对象的实例instance of 类对象,来判断是否是某个类的实例,如果是的话,就可以强制转换,这个虽然确实挺有用的,但是觉得和前两种比起来稍显得有些不足;

4.还有就是利用泛型对 Class 对象进行类型限定

举个例子

Class<Integer> intClass = int.class; // legal

intClass = double.class; // illegal

通过泛型的方式可以对这个类做更加严格的限制,但是我自己觉得这个其实是在编译期做的事情,谈不上运行时的概念。

相关文章

  • RTTI

    运行时类型识别(RTTI, Run-Time Type Identification)是 Java 中非常有用的机...

  • RTTI

    多态及可能存在的问题 多态是C++面向对象的三大特性之一,具体表现为: 即可以用父类的指针指向子类的对象。然而这也...

  • RTTI

    RTTI:run time type identification,运行时类型识别; 首先这个是个啥东西,其实就是...

  • 2018-04-07

    c++ 中的 RTTI RTTI是运行阶段类型识别(Runtime Typ...

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

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

  • RTTI和类型转换运算符

    1. RTTI RTTI是运行阶段类型识别(Runtime Type Identification)的简称。该特性...

  • RTTI下的C++的向下转型

    什么是RTTI? RTTI是“Runtime Type Information”的缩写,意思是:运行时类型信息。它...

  • 6.0 C++远征:运行时类型识别RTTI

    4-1运行时类型识别RTTI [TOC] 1.RTTI ​ Run-Time Type Identificat...

  • iOS开发 编译C++代码报错 typeinfo

    报错如下: 这是因为混用了no-RTTI代码和RTTI代码需要在 Xcode--> Build Settings ...

  • 浅谈 RTTI

    什么是 RTTI? RTTI 即 Runtime Type Information,顾名思义,也就是在运行时,识别...

网友评论

      本文标题:RTTI

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