美文网首页
类型信息

类型信息

作者: tdeblog | 来源:发表于2016-08-11 17:30 被阅读0次

    RTTI#

    这个类型在编译时必须已知,这样才能用RTTI识别它,并利用这些信息做一些有用的事。
    Class.forName("ClassName")获取一个类的类型对象
    Class.newInstance()创建一个对象
    ClassName.class同forName方法
    x instanceof Class
    Class.isInstanceof(x)同上

    反射#

    在程序运行时动态的获取一个类信息。
    Class类与java.lang.reflect类库一起对反射的槪念进行了支持,该类库包含了Field、 Method以及Constructor类(每个类都实现了Member接口)。这些类型的对象是由JVM在运行 时创建的,用以表示未知类里对应的成员。这样你就可以使用Constructor创建新的对象,用 get()和set()方法读取和修改与Field对象关联的字段,用invoke()方法调用与Method对象关联的 方法。另外,还可以调用getFields()、getMethods()和getConstructors()等很便利的方法,以返 回表示字段、方法以及构造器的对象的数组(在JDK文档中,通过査找Class类可了解更多相关资料)。这样,匿名对象的类信息就能在运行时被完全确定下来,而在编译时不需要知道任何事情。

    Method.setAccessible(true)
    //将任何方法设置为可访问,包括私有方法
    Method.invoke(class)
    //调用方法执行
    

    相关文章

      网友评论

          本文标题:类型信息

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