Convert a list of Person object into a separated String by getName() property of Person object
有我能做的东西吗
1
| String s = XXXUtils. join(aList, "name", ","); |
其中,"name"是来自aList中对象的JavaBeans财产。
我发现只有StringUtils有join方法,但它只把List转换成分离的String。
类似的东西
1
| StringUtils.join(BeanUtils.getArrayProperty(aList,"name"),",") |
这很快,值得使用。beanutils抛出了2个检查过的异常,所以我不喜欢它。
- stackoverflow.com/questions/1515437/…有关如何使用join方法的详细信息。
- 嗯,是的,但我没有绳子,我有人:)
- 创建使用beanutils.getArrayProperty()的自己的实用程序方法,并将选中的异常转换为运行时异常。
Java 8这样做的方法:
1 2 3 4
| String. join(",", aList. stream()
. map(Person ::getName )
. collect(Collectors. toList())
); |
或者只是
1 2 3
| aList.stream()
.map(Person::getName)
.collect(Collectors.joining(","))); |
我不知道有什么,但您可以使用反射编写自己的方法,该反射为您提供属性值列表,然后使用StringUtils加入:
1 2 3 4 5 6 7
| 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 ;
} |
要加入,请执行以下操作:
1 2
| List <Person > people ;
String nameCsv = StringUtils. join(getProperties (people, "name")); |