黑马程序员_反射的作用-实现框架功能


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

    什么是框架,例如,我们要写程序扫描.java文件中的注解,要解决哪些问题:读取每一样,在每一个中查找@,找到的@再去查询一个列表,如果@后的内容出现在了列表中,就说明这是一个我能处理和想处理的注解,否则,就说明它不是一个注解或者说至少不是一个我感兴趣和能处理的注解。接着就编写处理这个注解的相关代码。现在sun提供了一个apt框架,它会完成所有前期工作,只需要我们提供能够处理的注解列表,以及处理这些注解的代码。Apt框找到我们感兴趣的注解后通知或调用我们的处理代码去处理。

你做的门调用锁,锁是工具,你做的门被房子调用,房子是框架,房子和锁都是别人提供的。

程序中不处理异常,而是main方法声明抛出异常,便于大家可以集中看主要的关键代码。

Class类也提供getResourceAsStream方法的比喻:如果你每次都找我给你商店买可乐,那我还不如直接向你买可乐,即直接提供一个买可乐的方法给你。

publicstaticvoidmain(String[]args)throwsException{

//应该先直接用ArrayListHashSet,然后才引入从配置文件读,这样便于学员学习。

Propertiesprops = newProperties();

//先演示相对路径的问题

//InputStreamips= new FileInputStream("config.properties");

/*一个类加载器能加载.class文件,那它当然也能加载classpath环境下的其他文件,既然它有如此能力,它没有理由不顺带提供这样一个方法。它也只能加载classpath环境下的那些文件。注意:直接使用类加载器时,不能以/打头。*/

//InputStreamips= ReflectTest2.class.getClassLoader().getResourceAsStream("cn/itcast/javaenhance/config.properties");

//Class提供了一个便利方法,用加载当前类的那个类加载器去加载相同包目录下的文件

//InputStreamips= ReflectTest2.class.getResourceAsStream("config.properties");

InputStreamips= ReflectTest2.class.getResourceAsStream("/cn/itcast/javaenhance/config.properties");

props.load(ips);

Ips.close();

StringclassName=props.getProperty("className");

Classclazz=Class.forName(className);

Collectioncollection= (Collection)clazz.newInstance();

//Collectioncollection= newArrayList();

ReflectPointpt1 =newReflectPoint(3,3);

ReflectPointpt2 =newReflectPoint(5,5);

ReflectPointpt3 =newReflectPoint(3,3);

collection.add(pt1);

collection.add(pt2);

collection.add(pt3);

collection.add(pt1);

System.out.println(collection.size());

}

  ----------------------     android培训      java培训    期待与您交流!    ----------------------   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值