使用流/映射 java 8 从列表创建对象

are*_*ena 4 java java-stream

我有一个对象列表。我想用一个方法从这个列表中创建单个对象,而不是总是调用:personList.get(0)、personList.get(1) 等。对象名称应该是列表元素中的 Person 名称。

List<Person> personList = ...;
Run Code Online (Sandbox Code Playgroud)

我想遍历 personList 并为列表中的每个对象按名称创建新对象。

Person 类包含带有 getter 的 name 属性。

我怎样才能做到这一点?

Ous*_* D. 6

只需流式传输列表并调用map操作,如下所示:

personList.stream()
          .map(x -> new T(x.getName()))
          .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

哪里T是新类型要创建的如元素StudentPersonEmployee等。