`
hfhwan
  • 浏览: 75900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

10 类型检查

阅读更多

分为两种:传统RTTI和reflection

 

传统RTTI: 多态时用到。基类引用子类,调用多态方法时进行RTTI。

                 强制类型转换。 检查是否能转,不能转抛出异常,(运行时)

 

获取Class对象的方法: Class.forName();   Object.class;

stiatic函数,在类首次载入时运行。(按需运行)

 

new 一个对象 == c = Class.forName(); c.newInstance(); 后者灵活些。

 

object instanceof “class name” == Class.isInstance(object);

 

reflection: 传统RTTI编译时就要获取class文件。reflection在运行时获取class文件。

 

(zz)

RTTI与多态到底有什么区别呢?

    查了相关资料以后,稍微明白点,看来还是自己基础只是不扎实啊。

    在多态的运用中,基类定义方法,子类重写或者重载该方法。在实际编程中,往往用基类的引用去代表继承自该类的所有子类,那么该引用调用的方法必须是基类中 已经定义的。这样的话,在程序运行的时候,编译器自动发现是基类还是它的继承类,从而调用相应的方法。(我猜想,编译器就是通过RTTI发现类型信息 的)。

    这样,使用多态机制的方法调用时,必须我们先知道了基类定义了什么方法,这就要求我们对基类定义的控制权。如果基类是来自一个库或者由别人控制,这时候 RTTI就是一种解决之道:可以继承一个新类,然后添加你要的方法。在代码的其他地方,可以检查你自己特定的类型,并调用你自己的方法。

   所以说RTTI可以说和多态没有关系,但是我想在多态的实现机制上,肯定用到了RTTI。

 

分享到:
评论

相关推荐

    ORACLE 10g 数据类型

    Oracle 10g 数据类型是数据库管理的基础,它定义了数据在存储和处理时的格式。Oracle 提供了丰富的数据类型来满足各种数据存储需求,主要包括字符型、数值型、日期时间型和大对象型。 1. 字符型 字符型数据类型包括...

    nozuonodienobb#JavaKotlinAndroidGuide#10_类型的检查与转换1

    1.1、类型检查 1.2、智能转换 1.3、不安全的转换操作符 1.4、安全的转换操作符

    python 学习中关于动态类型静态类型强类型弱类型的问题.docx

    **动态类型**(Dynamic Typing)指的是在程序执行过程中动态地进行类型检查的一种机制。在动态类型语言中,变量的类型是在运行时确定的,程序员不需要显式声明变量的数据类型,语言会在运行时自动推断变量类型。这...

    基线检查表,完成主机、应用和中间件检查

    1. **系统配置**:基线检查表会详细列出每个主机的操作系统类型、版本和补丁级别。这是确保系统安全性和稳定性的基础,因为未更新的系统可能存在已知的安全漏洞。 2. **安全设置**:包括防火墙规则、账户权限、加密...

    检查网址URL中字符串类型及个数(ASP防注入)

    '一个用于检查网址URL中字符串类型及个数的函数,Write By Msdiy. '调用效果 response.Write CheckQstring("id,int,0||title,string,10",true,true,true) '具体用法如下 '参数1: Qstrings 例如 "newsid,int,0||...

    c#判断上传文件的类型和大小

    因此,即使用户更改了文件的后缀名,我们仍可以通过检查这些字节来识别文件的真实类型。 **一、判断文件大小** 在C#中,我们可以在文件上传过程中直接获取文件大小。假设`HttpPostedFileBase file`是代表上传文件...

    软件性能测试检查表-模板

    2. **测试类型**:检查表会涵盖不同的性能测试类型,如负载测试(模拟正常工作负载)、压力测试(超出正常工作负载以测试系统的极限)、耐久测试(长时间运行以检查系统稳定性)和稳定性测试(检查系统在高负载下...

    运输车辆卫生检查记录表.pdf

    10. 车辆消毒记录:对于特定类型的货物(如食品、药品等),车辆消毒可能是必要的措施之一。记录表会包含消毒的日期、使用的消毒剂种类、消毒方法以及执行人员。 11. 培训记录:运输企业的员工可能需要定期接受有关...

    ActionScript3类型与java数据类型对应表.rar

    - Java引入了泛型,允许在编译时指定集合元素的类型,而AS3虽然没有直接的泛型概念,但可以通过使用Object类型并进行类型检查来实现类似的功能。 10. 异常处理: - AS3和Java都有异常处理机制,AS3使用try......

    ORALCE10g驱动classes12.jar版本问题 类型长度大于最大值

    1. **调整数据类型**:检查数据库表结构,确认字段是否使用了适当的数据类型。如果字段内容确实需要很长,可以考虑改用CLOB或NCLOB类型,它们可以存储更大的文本数据。 2. **升级驱动**:虽然题目提及的是Oracle 10...

    网络信息安全------网络连接检查表.docx

    10. **备注**:这是一个开放性栏目,用于记录任何未涵盖在标准检查项中的额外信息或特殊情况。 网络连接检查表是网络信息安全管理体系的重要组成部分,定期进行这样的检查有助于及时发现和修复安全隐患,维护组织的...

    Altium Designer 10 PCB的检查与生产输出.pdf

    本文将详细介绍如何在Altium Designer 10中进行PCB设计的检查与生产输出。 首先,设计规则检查(DRC)是确保PCB设计符合预设规范的关键步骤。DRC检查通过对比设计规则和实际布局,查找并报告可能存在的问题,如间距...

    服务器及存储设备安装记录检查表

    3. 用户沟通:确认连接方式、阵列类型、LUN大小和映射关系以及SAN交换机划分。 4. 设备上架和检测:安装到机柜,开机进行初步功能检查。 5. 线缆检查:确认所有线缆连接正确,避免数据传输问题。 6. SAN交换机配置:...

    嵌入式系统C代码走查检查单(编程必看).doc

    这些检查项旨在确保变量的命名和使用符合规范,避免出现命名不规范、类型转换不当等问题。 二、基本语句 * 是否没有将浮点变量用“==”或“!”与数字比较 * 是否没有在for 循环体内修改循环变量 * 在循环中是否...

    虚假发票常见问题类型及检查方法.pdf

    本文将详细解析虚假发票的定义、常见问题类型以及如何进行有效检查。 首先,我们要明确虚假发票的两种主要形式。一种是假发票,即发票本身伪造,非由税务机关监制,不具备法律效力。另一种是真票虚开,即发票真实,...

    日常检查排班表通用EXCEL模板(完整版).pdf

    日常检查排班表通用EXCEL模板知识点 标题解释 日常检查排班表通用EXCEL模板...知识点10:日常检查的评估 日常检查的评估是非常重要的。通过评估日常检查的情况,可以发现问题,改进工作流程,提高工作效率和质量。

    isa:是类型检查实用程序

    "isa:是类型检查实用程序" 这个标题表明我们正在讨论一个专门用于进行类型检查的工具,名为"isa"。在编程领域,类型检查是非常关键的一环,它确保变量、参数和返回值具有正确的数据类型,这对于预防错误和提升代码...

    兴奋剂检查站位置及布局要求.pdf

    本文件主要讲述了兴奋剂检查站的选址标准、结构布局要求以及根据赛事规模分类的不同类型。 首先,兴奋剂检查站的位置需满足以下要求:位于场馆的赛后控制区、医疗区和运动员更衣区附近,方便运动员在比赛结束后快速...

    Allegro16.6高速PCB设计培之Gerber输出前检查

    10. 丝印检查:核查板上的板名、版本号、日期、logo等信息是否齐全且正确,确认极性元件丝印方向是否正确,检查ID和Lable尺寸。 11. DRC(Design Rule Check,设计规则检查)检查:完成DRC检查以确保所有设计规则都...

    Windows10安装麒麟桌面V10双系统

    在我的电脑-管理-磁盘管理中检查是否有多余的空间,划分一个 50G~100G 的磁盘空间作为系统盘。 3.2 设置启动项 启动电脑按 F1 键进入 Boot 设置页面,修改 USB CD(这里使用的光盘刻录的麒麟 V10 镜像),F10 保存...

Global site tag (gtag.js) - Google Analytics