私はモデルクラスを持っている:私はモデルクラスからpersonnelId
を取得List<String>
にList<Person>
を変換する際にJavaモデルオブジェクトをStringオブジェクトから戻す方法は?
public class Person{
private String personnelId;
private String lastName;
private String firstName;
}
は、今私は、サービスクラス今
public class A{
@Autowired
private OfficerService officer;
public List<Person> getAccounts(Param param){
List<Person> personList = personDao.getAccounts(param);
List<String> stringList = personList.stream().map(Person::getPersonnelId).collect(Collectors.toList());
List<String> list = Officer.getVisiblePerson(stringList);
List<Person> visiblePersonList= new ArrayList<>();
return visiblePersonList;
}
を持っています。メソッドコールの後、私はpersonnelId
に戻ります。 List<Person>
に変換する必要があります。このデータには、firstName
とlastName
のPerson
クラスのすべてのデータが含まれています。どうやってやるの?
EDIT:
Map<String, Person> personMap = personList.stream()
.collect(Collectors.toMap(Person::getPersonnelId, person -> person));
List<Person> visiblePersonList = list.stream()
.map(id -> personMap.get(id))
.collect(Collectors.toList());
私はマップの収集にエラーが発生します。
The method collect(Collector<? super String,A,R>) in the type Stream<String> is not applicable for the arguments (Collector<Person,capture#2-of ?,Map<String,Object>>)
は私が間違って何をしているのですか?
'List 'への変換は本当に必要ですか? –
モデルとして使いたいのであれば、なぜそれを文字列に変換しましたか? – EJP
ええ、私はいくつかの第三者サービスを消費し、そのサービスは文字列を取るだけです。 – sleepysiliconvalley