Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Joiner仅连接特定属性?_Java_Guava_Joiner - Fatal编程技术网

Java 如何使用Joiner仅连接特定属性?

Java 如何使用Joiner仅连接特定属性?,java,guava,joiner,Java,Guava,Joiner,假设我有一门课: public class MyClass { private String propertyOne; private String propertyTwo; // getters setters... } 现在,在我的测试方法中,我尝试了以下方法: List<MyClass> myList = myListDao.findAll(); String aStringFullOfPropertyOnesOfAllMyObjects = Jo

假设我有一门课:

public class MyClass {
    private String propertyOne;
    private String propertyTwo;
    // getters setters...
}
现在,在我的测试方法中,我尝试了以下方法:

List<MyClass> myList = myListDao.findAll(); 
String aStringFullOfPropertyOnesOfAllMyObjects =  Joiner.on(", ").join(myList.iterator());
"propOneOfObjectOne, propOneOfObjectTwo, propOneOfObjectThree"
我如何才能做到这一点?

传统的解决方案:

您可以使用内置的标准StringBuilder:

StringBuilder builder = new StringBuilder();
Iterator<MyClass> iter = myList.iterator();
for (MyClass object = iter.next(); iter.hasNext();) {
    builder.append(object.getPropertyOne());
    if (iter.hasNext()) {
         builder.append(", ");    
    }
}
String result = builder.toString();

为什么不自己制作这个字符串?@meskobalazs我正在努力保持它的简单性和学习性。你确定这是正确的吗?它不编译。(使用Joiner)我没有测试代码,因为我没有使用这个库。错误是什么?apply方法需要字符串类型的参数,而不是MyClass。
Joiner.on(", ").join(Iterables.transform(myList, new Function<MyClass, String>() {
    public String apply(MyClass object) { return object.getPropertyOne(); }
}));