如何在 java 流中构建实体?

How to build an entity in java stream?

有实体:

@SuperBuilder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {

    private String name;

    private Integer age;

我顺流而下,在建筑工人的帮助下收集了我的学生名单

public List<Student> getStudent(Inputstream students) {
 return new BufferedReader(new InputStreamReader(students)).lines()
        .map(String::trim)
        .filter(line -> line.startsWith("a"))
        .map(line ->
            Student.builder()
                .name(line.substring(0, line.indexOf("this name")))
                .age(line.substring(line.indexOf("name")))
                .build())
        .collect(Collectors.toList());

}

生成器的这种用法是否正确?

是的,这个用法是正确的。你不会违反我熟悉的任何规则和模式。此外,您可以像这样进行一些重构:

public List<Student> getStudent(Inputstream students) {
 return new BufferedReader(new InputStreamReader(students)).lines()
        .map(String::trim)
        .filter(line -> line.startsWith("a"))
        .map(this::makeStudent)
        .collect(toList());

}

private Student makeStudent(final String source){
    return Student.builder()
                  .name(source.substring(0, source.indexOf("this name")))
                  .age(source.substring(source.indexOf("name")))
                  .build();
}