zoukankan      html  css  js  c++  java
  • 有关java反射的几个小方法的作用和区别

      1.Class类中 getXXX()和getDeclaredXXX()的作用和区别:

      前者获取某个类的所有公共(public)的字段(or方法or构造函数),包括父类。后者获取所有的字段(or方法or构造函数),即所有修饰符修饰的(public,private,protectd),但是并不包括父类的申明字段。

      例:getFields()获得某个类的所有的公共(public)的字段,包括父类。
    getDeclaredFields()获得某个类的所有申明的字段,即包括public、private和proteced,但是不包括父类的申明字段。

    同样类似的还有getConstructors()和getDeclaredConstructors(),getMethods()和getDeclaredMethods()。

      2.java中getSuperClass()和getClass()区别:

      前者为获取继承的类(父类),后者为获取当前类。前者为Class类中的方法,后者为Object类

      3.Field 中的isAccessible真正的含义是什么?

      isAccessible()值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。实际上setAccessible是启用和禁用访问安全检查的开关,并不是为true就能访问为false就不能访问。由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的目的

      4.isAssignableFrom()和 instanceof

      isAssignableFrom是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。通常调用格式是Class1.isAssignableFrom(Class2)。调用者和参数都是java.lang.Class类型。  
      instanceof是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。 格式是:oo instanceof TypeName。第一个参数是对象实例名,第二个参数是具体的类名或接口名

  • 相关阅读:
    spring mvc 获取请求中参数方式
    23种设计模式
    Liunx-Centos下安装FFmpeg
    liunx下nginx静态服务器配置SSL证书
    JDK 1.5新特性
    搭建kubenetes集群
    centos7添加虚拟IP
    Apache+tomcat配置动静分离(一个apache一个tomcat,没有做集群)
    maven使用内嵌tomcat7
    spring集成mybatis后,打印SQL语句
  • 原文地址:https://www.cnblogs.com/JavaZhangXu/p/7149420.html
Copyright © 2011-2022 走看看