依旧用代码言语。。
这是一个Java Project
package com.jadyer.reflection;import java.io.FileReader;import java.lang.reflect.Method;import java.util.Enumeration;import java.util.Hashtable;import java.util.Properties;import com.jadyer.model.Student;public class ImitateJavaBean {private static Hashtable mySession; //模仿Web编程中的session对象static{mySession = new Hashtable();mySession.put("stu", new Student());}public static void main(String[] args) throws Exception{Properties properties = new Properties();FileReader fileReader = new FileReader("props.txt");properties.load(fileReader); //导入指定文件中所有属性消息fileReader.close(); //关闭敞开的文件Enumeration> propertiesNames = properties.propertyNames(); //获得所有的属性名while(propertiesNames.hasMoreElements()){String name = (String)propertiesNames.nextElement();String value = properties.getProperty(name);ImitateJavaBean.invokeSetter("stu", name, value); //厉行setter措施,为属性赋值}System.out.println(ImitateJavaBean.mySession.get("stu")); //输出stu符号的元素的值,即student对象}public static void invokeSetter(String beanName, String propertyName, String propertyValue) throws Exception{Object obj = mySession.get(beanName);Class> clazz = obj.getClass();//动态构造一个setter措施,例如name --> setName//propertyName.substring(0,1)能够取出属性名的第一个字母//propertyName.substring(1)能够隶属性名的第2个字母开始取出所有其它的字母String methodName = "set" + propertyName.substring(0,1).toUpperCase() + propertyName.substring(1);//Method method = clazz.getMethod(methodName,遥控蝴蝶 java.lang.String.class) //也能够这么写Method method = clazz.getMethod(methodName, new Class[]{java.lang.String.class});method.invoke(obj, propertyValue);//将propertyValue作为该措施的参数值,然后调用该措施} }
下面是用到的Student类
package com.jadyer.model;public class Student {private String name;private String password;public void setName(String name) {this.name = name;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "Name:" + name + "/tPassword:" + password;}}
最后是用到的位于Java Project根目录中的属性文件props.txt
name = Adminpassword = Jadyer
public synchronized void setValues (int height,int width)
throws