//一种方法加载属性文件 //InputStream ips = new FileInputStream("config.properties"); //另一种方法加载属性文件 注意:该文件放到了src目录下 //InputStream ips = ReflectTest.class.getClassLoader().getResourceAsStream("ZHANG/Reflect/config.properties"); InputStream ips = ReflectTest.class.getResourceAsStream("config.properties"); Properties props = new Properties(); props.load(ips); ips.close(); String classname = props.getProperty("CLASSNAME"); Collection conllections = (Collection) Class.forName(classname).newInstance();
PropertyDescriptor pd = new PropertyDescriptor(属性名称,对
象.getClass);Method methodGetX = pd.getReadMethod();//得到这个get方
法Object retVal = methodGetX.invoke(对象);//获得方法返回的值
Method methodSetX = pd.getWriteMethod();//得到set这个方法methodSetX.invoke(对象,值);//获得方法返回的值
Appche 提供了BeanUtil工具包用它来操作JavaBean,支持属性的级联操作,
如Date date = new Date(); set方法时候可以用date.time 来设置
date.setTime()方法.BeanUtil类 BeanUtil类是用字符串形势对bean操作,BeanUtil.setProperty(对象,"属性名","值");PropertyUtil是由属性本身的类型设置和返回的值PropertyUtil.setProperty(对象,"属性名",值);
JavaBean可以转换成Map
------------------------------
URL(Uniform Resource Locator)
静态的导入类的方法import static java.util.Math.abs
Class.forName("java.lang.String");//得到这个类的字节码
反射就是把JAVA类中的各个成分映射成相应的类。FieldMethodContructorPackage
getClass.getDeclaredField("x");//把私有设置成可访问Field.setAccessible(true);//抢占私有成员属性
hashcode()使hashset()不能添加相同项;如果改变其中值,remove()是不起作用,导致java内存泄漏现象;不改其值可以remove().
