/**
* 传入对象
* @param obj 前提obj存在set get方法
* @return返回对象存在的属性值
* @throws Exception
*/
public static String ObjectParesToString(Object obj) throws Exception{
Class userClass = Class.forName(obj.toString().split("@")[0]);//加载类
Field[] fields = userClass.getDeclaredFields();//获得对象方法集合
String fdname=null;
Method metd = null;
for (Field field : fields) {// 遍历该数组
fdname = field.getName();// 得到字段名,
metd = userClass.getMethod("get" + change(fdname), null);// 根据字段名找到对应的get方法,null表示无参数
Object name = metd.invoke(obj, null);// 调用该字段的get方法
if(name!=null){
System.out.println(name);
}
}
return null;
}
/**
* @param src
* 源字符串
* @return 字符串,将src的第一个字母转换为大写,src为空时返回null
*/
public static String change(String src) {
if (src != null) {
StringBuffer sb = new StringBuffer(src);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
return sb.toString();
} else {
return null;
}
}
public class User {
private String name;
private String sex;
public User() {
super();
}
public User(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
public static void main(String[] args) throws Exception {
User u1=new User("张三", "女");
Test.ObjectParesToString(u1);
}