我有一个方法从一个通用对象在c#下面获得属性。我怎么能得到相同的java?
public string GetProperty<T>(T obj)
{
var s = string.Empty;
var t = obj.GetType();
foreach (var pi in t.GetProperties())
s += " " + pi.Name + ":" + pi.GetValue(obj, null);
return s;
}
假设我有一个类Emp如下
public class Emp {
int Id;
String Msisdn;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getMsisdn() {
return Msisdn;
}
public void setMsisdn(String msisdn) {
Msisdn = msisdn;
}
}
我想调用下面的方法
public Emp data = new Emp();
emp.setId(1);
emp.SetMsisdn("1404850126");
String s = ConvertString(data);
它将返回
Id: 1 Msisdn: 1404850126
使用Apache Commons BeanUtils中的PropertyUtils
类
public static void main( String[] args ) {
Emp emp = new Emp();
emp.setId(1);
emp.setMsisdn("msisdnvalue");
try {
String msisdn = (String) PropertyUtils.getProperty(emp, "msisdn");
System.out.println(String.format("msisdn: %s", msisdn));
} catch(Exception e) {
e.printStackTrace();
}
}