zoukankan      html  css  js  c++  java
  • java编程思想概括(第十章)类型检查

    类型检查

    运行期类型识别(RTTIrun-time type identification

    在运行期识别对象和类的信息1)(传统的)在编译器和运行期已经知道了所有的类型;2)“反射机制reflection”,在运行期获得类的信息。

    1. class对象:它包含了与类有关的信息。Java程序并不是一开始执行,就完全加载的。与许多传统语言都不同。一旦某个类的Class对象被载入内存,它就被用来创建这个类的所有对象(class.forName)。

    2. 类字面常量(Class literal):生成Class对象的引用(.class的形式)不仅可以应用于普通的类,也可以用于接口、数组以及基本数据类型,以外,对于基本数据类型的包装类,还有一个标准域TYPE,(是个引用,指向对应的基本数据类型的Class对象)。

    3. 类型转换前先作检查:instanceof,返回布尔值,告诉我们对象是不是某个特定类型的实例。使用Class.newInstance()调用无参构造器生成新的对象。

    4. 使用类字面常量:从Class对象获取类型名称。

    5. 动态的instanceof:Class.isInstance方法提供了一种动态地调用instanceof运算符的途径。

    6. 等价性:instanceof vs .class,与直接比较Class对象有一个很重要的差别。Instanceof保持了类型的概念,==比较实际的Class对象。

    7. RTTI语法:通过使用Class对象,我们可以找出一个对象的任何信息。Class.getInterfaces()方法返回Class对象的数组。

    8. 反射(Reflection):运行期的类信息:在编译期,编译器必须知道你要通过RTTI来处理的所有类。通过检查可用的方法,并返回方法名。对于RTTI来说,编译器在编译期打开和检查.class文件。而对于反射机制来说.class文件在编译期间是不可获取的,所以是在运行期打开和检查.class文件。

    9. 类方法提取器:ClassgetMethods()getConstructors()方法分别返回Method数组和Constructor数组。

     

     

     

    ——————————如果不豁出性命的话,也是无法开创未来的。
  • 相关阅读:
    对软件工程的困惑
    团队作业(七)
    团队作业(六)
    团队作业(五)
    团队作业(四)
    团队作业(三)
    团队作业(二)
    团队作业(一)
    代码
    课余作业 采访
  • 原文地址:https://www.cnblogs.com/thirller/p/2940536.html
Copyright © 2011-2022 走看看