Как я могу использовать Joiner, чтобы объединить только определенные свойства?
Допустим, у меня есть этот класс:
public class MyClass {
private String propertyOne;
private String propertyTwo;
// getters setters...
}
Теперь, в моем методе тестирования, я пытаюсь что-то вроде:
List<MyClass> myList = myListDao.findAll();
String aStringFullOfPropertyOnesOfAllMyObjects = Joiner.on(", ").join(myList.iterator());
String
Я хочу вернуть это что-то вроде:
"propOneOfObjectOne, propOneOfObjectTwo, propOneOfObjectThree"
Как я могу это сделать?
1 ответ
Решение
Решение "старой школы":
Вы можете использовать встроенный стандартный 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();
Используя Joiner:
С помощью Joiner
из связанного ответа:
Joiner.on(", ").join(Iterables.transform(myList, new Function<MyClass, String>() {
public String apply(MyClass object) { return object.getPropertyOne(); }
}));