1

为类的所有字符串实例变量创建键/值对的最佳方法应该是什么?有没有图书馆在做这样的任务?

我正在使用基于反射的向后查找来做同样的事情。但它似乎做了很多工作。

例如:

我有一堂课

public class Account implements ManagedEntity {

private String accountNumber;

public Account(String accountNumber) {
    this.accountNumber = accountNumber;
}
}

如果Account像 blelow 一样创建类的实例,Account ac = new Account("abc");

输出映射应类似于:[{"accountNumber", "abc"}]。

4

2 回答 2

2

正如 Peter Lawrey 在其中一条评论中指出的那样,如果您正在寻找一个可以为您进行转换的库,那么一个可能的答案是Apache Commons BeanUtils

您可以使用该BeanUtils库中的类:

Account account = new Account("abc");
Map accountMap = new HashMap();
BeanUtils.populate(account, accountMap);

或者使用BeanMap实现会更容易:

Account account = new Account("abc");
Map accountMap = new BeanMap(account);
于 2012-09-03T15:14:33.047 回答
0

就像 Peter Lawrey 和这里提到的那样,就像

Account ac = new Account("abc");
Map<String, Object> properties = BeanUtils.describe(ac);

要将其限制为 String 属性,您可以使用BeanUtilsBean实例,将ConvertUtilsBean的子类传递给构造函数。子类覆盖查找方法,如果该类不是,则返回 null String

于 2012-09-03T15:17:56.493 回答