java反射

反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。(自审)
例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。
这个功能特定我们不常看到,但是在其他的比如C或者C++语言中根本就就存在这个特性。

-----------------------------------------------------------------------------------

类--->jvm--->new 对象
类         public Class String{}
类对象  String.class  单例  一般加载进内存不销毁   jvm虚拟机分配内存
类的对象   String str=new String(); String str1=null; 

-----------------------------------------------------------------------------------
所有用Declared修饰的可以获取到本类中即便是private修饰的成员,
非Declared修饰的虽然只能直接获取public修饰的成员,但可以获取到其父类的成员:


  public Field getDeclaredField(String name)  获取任意指定名字的成员
  public Field[] getDeclaredFields()             获取所有的成员变量

  public Field getField(String name)           获取任意public成员变量
  public Field[] getFields()                    获取所有的public成员变量

  getModifiers():获取属性修饰符
  getType():获取属性类型
  getName():获取属性名

  ---------------------------------------------------------------------------------

  public Method[] getMethods()    获取所有的共有方法的集合
  public Method getMethod(String name,Class... parameterTypes) 获取指定公有方法 参数1:方法名 参数2:参数类型集合  
  public Method[] getDeclaredMethods()  获取所有的方法
  public Method getDeclaredMethod(String name,Class<?>... parameterTypes) 获取任意指定方法

  getModifiers():获取方法修饰符
  getReturnType():获取方法类型
  getName():获取方法名
  getParameterCount() 获取方法参数个数
  getParameters()  获取方法参数
  getExceptionTypes() 获取方法异常
-------------------------------------------------------------------------------------


 public Constructor<?>[] getConstructors()      返回类中所有的public构造器集合,默认构造器的下标为0
 public Constructor<T> getConstructor(Class<?>... parameterTypes)   返回指定public构造器,参数为构造器参数类型集合
 public Constructor<?>[] getDeclaredConstructors()  返回类中所有的构造器,包括私有
 public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 返回任意指定的构造器
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值