反射(自用)

反射

反射:在编译期并不清楚应该加载那个类,类的加载在运行期间进行的,通
过反射可以类进行加载、探知、自审。

获取Class的方式

1.对象.getClass
2.类名.class
3.Class.forName(“类的全路径”);

		//第一种
		Class c1 = ManBean.class;	
 
       //第二种
		ManBean m1 = null;
		Class c2 = m1.getClass();
     
       //第三种
	   Class c3 = Class.forName("com.s1_21.ManBean");


反射中常用的方法

newInstance(),获取某个class文件对应的真实对象。(调用某个类的空参构造器)

Class类中提供的获取class文件中成员分成2类:
1、获取类中公开的成员 getXxxxxx 获取到的是公开的成员
2、获取类中私有的成员 getDeclaredXxxxxx 获取到指定的私有的成员

调用类中的私有方法需要取消权限检查,使用Constructor类中的 setAccessible()方法,参数为true

        //反射私有的构造方法 ,次方法需要传入一个in型t变量和String型变量
		Constructor cons = clazz.getDeclaredConstructor(int.class , String.class);
		//取消权限的检查
		cons.setAccessible(true);

反射成员变量


   	  反射成员变量:
   	   在一个类中可以有多个同类型,不同名称的成员变量
   	 * 而这些成员变量都需要根据变量的名称进行区分	  
   	  Field getField(String name)  
   	 String name 反射的变量的名称
   	  返回值Field 反射到的具体的那个成员变量对象
       反射私有的成员变量需要取消权限检查
     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值