java反射

获取类

//1、通过 Class 对象的 forName() 静态方法来获取,使用的最多
//但需要抛出或捕获 ClassNotFoundException 异常
Class<?> studentClass3 = Class.forName("全限定类名");
System.out.println(studentClass3);
//2、直接通过`类名.class` 的方式得到
// 任何一个类都有一个隐含的静态成员变量 class
Class<?> studentClass2 = Student.class;
System.out.println(studentClass2);
//3、通过对象调用 getClass() 方法来获取
//  类型的对象,而我不知道你具体是什么类,用这种方法
Student student = new Student();
Class studentClass1 = student.getClass();
System.out.println(studentClass1);
//4、 使用类的加载器:ClassLoader 来获取Class对象
ClassLoader classLoader = ClassDemo01.class.getClassLoader();
Class studentClass4 = classLoader.loadClass("全限定类名");
System.out.println(studentClass4);

常用API

  • getName():获得类的完整名字。
  • getFields():获得类的public类型的属性。
  • getDeclaredFields():获得类的所有属性。包括private声明的和继承类
  • getMethods():获得类的public类型的方法。
  • getDeclaredMethods():获得类的所有方法。包括private声明的和继承类
  • getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。
  • getConstructors():获得类的public类型的构造方法。
  • getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes参数指定构造方法的参数类型。
  • newInstance():通过类的不带参数的构造方法创建这个类的一个对象。
  • invoke(Object obj,Object… args):obj:调用底层方法的对象;args:用于方法调用的参数;return:使用参数args在obj上调度此对象表示的方法的结果
  • setAccessible():设置值为true临时取消权限校验
  • getReturnType():获取方法返回值类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值