kas*_*sie 14 java properties object
在Java中是否可以通过其名称获取类属性值?例如,我喜欢上课
public class Test {
private String field;
public String getField() {...}
public void setField() {...}
}
Run Code Online (Sandbox Code Playgroud)
另一个有Map的课程
public class Main {
private static final Map<String, Long> map = new HashMap<String, Long>();
static {
map.put("field", new Long(1));
}
public void doSth() {
Set<String> keys = map.keySet();
Test t = new Test();
for (String key : keys) {
//t.getPropertyValueByName(key); ?
}
}
Run Code Online (Sandbox Code Playgroud)
小智 14
您可以使用一些提供基于属性的访问的库.我认为最知名和最常用的是beanutils.你可以在这里找到一个很好的beanutils"在行动中"的例子.一些示例代码:
A someBean = new A();
// access properties as Map
Map<String, Object> properties = BeanUtils.describe(someBean);
properties.set("name","Fred");
BeanUtils.populate(someBean, properties);
// access individual properties
String oldname = BeanUtils.getProperty(someBean,"name");
BeanUtils.setProperty(someBean,"name","Barny");
Run Code Online (Sandbox Code Playgroud)
小智 5
是.您可以使用t.getClass().getField(map.get(key)).get(t)替换注释掉的行.这将检索t上字段的值.
归档时间: |
|
查看次数: |
51589 次 |
最近记录: |