黑马程序员_反射

 ------- android培训java培训、期待与您交流! ----------

-
在一些通用的框架中,很多情况下,我们并不知道程序的源码,所能拿到的往往是一些class文件,在这种情况下,如果想要知道源程序的构造,反射,可以帮我们实现。
反射:就是把java类中的各种成分映射成相应的java类。
一个java类中的组成部分field、method、constructor、package等信息都可以用反射API的一个实例对象来表示通过调用Class类的想对应的方法,都可以拿到相对应的实例对象。当然了,用反射的编程手法与编程思想去编写代码,都应该首先拿到各个字节码所对应的Class实例对象。有下面三种方法:
1)类名.class.
2)对象.class
3)Class.forName("类名")
学习反射,就应该跟一般方式对比着学,通过两种方式的不同,来体会反射的重大意义
例:
public class ReflectTest
{
      public static void main(String[] args)throws Exception
{
            String str="basketball";
                changStringValue(str);
}
              privae static void changStringValue(Object obj)throws Exception
            {
Field[] fields=obj.getClass().getFields();

for(Field field:fields)
{
if(field.getType()==String.class)
{
String oldValue=(String)field.get(obj);
System.out.println(oldValue);
 String newValue=oldValue.replace("b","a");
 System.out.println(newValue);
field.set(obj,newValue);
System.out.println(field.get(obj));
}

}
}
}
这个小例子虽然短小,但反映出了反射的本质所在。
当然了,刚才的这个小代码仅仅是反射的一个简单应用而已,在基础加强视频中,反射还将影响着javabean,spring框架,在java的常用框架中,也都是采用反射的原理来实现的,反射的更多更复杂的功能,还需要我们在以后的日子里共同学习。  

 ------- android培训java培训、期待与您交流! ----------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值