我可以做XXXUtils
String s = XXXUtils.join(aList, "name", ",");
其中"name"
是来自aList
中对象的JavaBeans属性。
我发现只有StringUtils
使用join
方法,但它只将List<String>
转换为单独的String
。
像
这样的东西StringUtils.join(BeanUtils.getArrayProperty(aList, "name"), ",")
快速且值得使用。 BeanUtils会抛出2个已检查的异常,因此我不喜欢它。
答案 0 :(得分:13)
Java 8的做法:
String.join(", ", aList.stream()
.map(Person::getName)
.collect(Collectors.toList())
);
或只是
aList.stream()
.map(Person::getName)
.collect(Collectors.joining(", ")));
答案 1 :(得分:3)
我不知道,但您可以使用反射来编写自己的方法,该反射会为您提供属性值列表,然后使用StringUtils
加入:
public static <T> List<T> getProperties(List<Object> list, String name) throws Exception {
List<T> result = new ArrayList<T>();
for (Object o : list) {
result.add((T)o.getClass().getMethod(name).invoke(o));
}
return result;
}
要获得加入,请执行以下操作:
List<Person> people;
String nameCsv = StringUtils.join(getProperties(people, "name"));