为什么要用内省和BeanUtils以及路径问题
来源:互联网 发布:mac book可以安装vs么 编辑:程序博客网 时间:2024/06/05 21:17
1、原始方法,在一般框架中底层的用法obj.txt-----
cn.Personid=110name=“李四”Demo1.java----
public class Demo1{ public static void main(String[] args) {Person p = (Person)getInstance();System.out.println(p);} public static Object getInstance() { //根据配置文件产生对象的对象并把对象的属性值封装到对象中 BufferedReader br = new BufferedReader(new FileReader("obj.txt")); String classname = br.readLine(); Class clazz = Class.forName(classname);Constructor constructor = clazz.getConstructor(null); Object o = constructor.newInstance(null);String line = null;while((line = br.readLine())!=null){String[] datas = line.split("=");Field field = clazz.getDeclaredField(data[0]);if(field.getType()==int.class){field.set(o,Integer.parseInt(datas[1]));}else{field.set(o,datas[1])}}return o;}}
2、内省需要Get、Set方法:是个变态的反射。
3、BeanUtils:底层使用的内省,所以配置文件需要Get\Set方法,同时自动帮我们基本类型转换,如果需要特定类型转换(Date),需要注册转换器(ConvertUtils.register)
BeanUtils.set(p,"id",id);
4、
绝对路径:一般是包含盘符的,但是由于WIN和LINUX路径标志不同,所以很少用。
相对路径:相当于当前程序的,而在eclipse等都是通过控制台控制。
而真正使用的是.class文件,一般在project-name/cn/exmple/Demo.class。project-name/db.properties。
例如:Demo.class--->properties.load(new FileReader("db.properties"));
类文件路径:使用classpath的路径找相对应的资源文件。
如需要使用到类文件首先要获取到一个class对象。
例如:Class clazz = Demo.class;
clazz.getResourceAsStream("/db.properties"); //该方法就是使用了类文件路径
properties.load();
0 0
- 为什么要用内省和BeanUtils以及路径问题
- 内省-----》javabean,以及BeanUtils
- 内省机制和BeanUtils
- 内省和BeanUtils框架
- 内省(Introspector)和BeanUtils工具包
- 内省和BeanUtils框架2
- 内省和BeanUtils框架3
- 《黑马程序员》 Bean 内省 以及BeanUtils工具
- java 内省以及介绍beanutils使用
- 反射(reflect)、内省(introspector)以及BeanUtils框架
- 内省综合案例和 Beanutils 工具包
- 内省 BeanUtils框架
- Java 内省、JavaBean、BeanUtils
- Java 内省、JavaBean、BeanUtils
- 枚举&内省&beanutils
- 内省.BeanUtils操作JavaBean
- 日常小结-内省、beanutils
- junit测试、内省、BeanUtils
- 从 数组1中过滤出数组2中没有的对象
- 关于学习Gson的简单分析
- Xcode更新7.2 之后注释插件失效的解决办法
- IntelliSense: PCH warning: header stop cannot be in a macro or #if block. An intellisense PCH file
- React-Native的学习指南
- 为什么要用内省和BeanUtils以及路径问题
- GNU Make 学习 (www.andyyin.com) 待续
- mysql远程访问 sql删除记录 伪造浏览器post php错误处理学习 django模板改tdk
- 关于C++中的友元函数的总结
- 清理Windows.edb文件释放C盘空间
- js如何获取object类型里的键值
- LeetCode Pascal's Triangle
- 屏幕密度
- 读xml