import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class AttributeBase {
public String getFileVal(String filedName) {
Map<String, String> fieldsAndValues = getClassFiledsInfo();
return fieldsAndValues.get(filedName);
}
public Map<String, String> getClassFiledsInfo() {
Map<String, String> fieldsAndValues = new HashMap<String, String>();
Field[] fields = this.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field f = fields[i];
String value = getFieldValue(this, f.getName()).toString();
fieldsAndValues.put(f.getName(), value);
}
return fieldsAndValues;
}
private String getFieldValue(Object owner, String fieldName) {
return invokeMethod(owner, fieldName, null).toString();
}
private Object invokeMethod(Object owner, String fieldName, Object[] args) {
Class<? extends Object> ownerClass = owner.getClass();
String methodName = fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);
Method method = null;
try {
method = ownerClass.getMethod("get" + methodName);
return method.invoke(owner);
} catch (Exception e) {
return "";
}
}
}
public class User extends AttributeBase {
String userName;
String passWorld;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWorld() {
return passWorld;
}
public void setPassWorld(String passWorld) {
this.passWorld = passWorld;
}
public static void main(String[] args) {
User u = new User();
u.passWorld = "123";
u.userName = "aaaaa";
System.out.println(u.getFileVal("userName"));
System.out.println(u.getFileVal("passWorld"));
}
}