Hej. Czy da się to uprościć korzystając z Javy 8 i lambd. Mam do zapisania listę (niedużą) do pliku we własnym formacie ( jeden obiekt - jedna linijka ) i teraz mam tak ;.
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import com.google.common.collect.Lists;
class Book {
private String title;
Book(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
}
class bookToFileLine implements com.google.common.base.Function<Book,String> {
@Override
public String apply(Book book) {
return "Title["+book.getTitle()+"]";
}
}
public class Main {
public static void main(String[] args) {
List<Book> books = Arrays.asList(
new Book("ABC"),
new Book("CDE"),
new Book("EFG")
);
List<String> fileLines = Lists.transform(books,new bookToFileLine());
try {
Files.write(Paths.get("test.txt"),fileLines,Charset.defaultCharset());
} catch (IOException io) {
io.printStackTrace();
}
}
}