了解JAVA反射

JAVA反射

1.定义

反射: 框架设计的灵魂
框架:半成品软件。可以在框架的基础上进行软件开发,简化编码
反射:将类的做成对象封装成其他对象,这就是反射机制;

2.反射应用及使用场合

1. 获取Class类名

通过Class.forName( )
Class.forName( ); 通常用于配置文件中

通过:类名.class
类名.class:多用于参数传递
Class cl2 =Person.class;

通过实例对象获得Class
对象.getClass():用于对象获取字节码文字对象
Person p = new Person();
Class cl3 = p.getClass();

2.获取成员变量
  1.Field[] filelds = personclass.getFields();
     获取public 类型的所有成员变量

    2.Field  field = personclass.getField("a");
       获取public 类型的指定成员变量

    3.Field[] fields = personclass.getDeclaredFields();
       可以获取所有成员变量,修饰符对其无影响
    
    4.Field name = personclass.getDeclaredField("name");
      可以获得指定成员变量,修饰符对其无影响
    
    注意:name.setAccessible(true);
    暴力反射:成员变量,方法,构造方法不限权限;

设置/获得成员变量方法
步骤一:创建对象
Class personclass = Person.class;
步骤二:创建成员变量
Field a = personclass.getField(“a”);
步骤三:创建实例
Person p = new Person();
步骤四:设置成员变量
a.set(p,“拼多多”)
步骤五:获得成员变量
Object o = a.get§;
步骤六:打印
System.out.println(o);

3.获取构造函数

步骤一:获取Person类
Class personClass = Person.class;
步骤二:获取构造函数,构造函数参数一定要 一 一 对 应
Constructor constructor =personClass.getConstructor(String.class, String.class);
步骤三:构造函数赋值,参数一一对应
Object person = constructor.newInstance(“张三”,“23”);
构造函数赋值,空参或初始化
Object o = personClass.newInstance();
步骤四:打印
System.out.println(o);

4.获取类的方法
  1.无参方法执行
   Method eat_method = personclass.getMethod("eat");
   eat_method.invoke(p);
  
   2.有参方法执行
   Method eat_method2 = personclass.getMethod("eat",String.class);
   eat_method2.invoke(p, "苹果");
  
   3.打印所有方法
   Method[] method = personclass.getMethods();
   for(Method m : method) {
       System.out.println(m);
   }
  
  4.method.getName获得方法名称
  • 获取方法步骤:

步骤一:获得Person类型
Class personclass = Person.class;
步骤二:获取实体类
Person person = new Person( );
步骤三:执行方法
1)无参方法执行
Method eat_method = personclass.getMethod(“eat”);
String m = eat_method.invoke§;
2)有参方法执行
Method eat_method = personclass.getMethod(“eat”,String.class);
String m = eat_method.invoke(p,“苹果”);
步骤四:打印
System.out.println(m)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值