从java中的泛型对象获取对象属性



我有一个方法从一个通用对象在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();
}
}

相关内容

  • 没有找到相关文章

最新更新