존 :
아래 직원은 내가 내부 직원의 객체 인 맵 obejct의 id 값을 전달해야, 개체 목록을 받아들이는 방법이다. 나는, pls는 아래에 Java8 새로운 모양입니다 :
class Service {
void meth(List<Employee> employees){
employees.stream().flatMap(e -> map = e.getProps())
.keySet().stream())
.filter(s -> s.equals("id"))
.allMatch(idValue -> isIdValid(empName, idValue).test(id)); //how to pass empName and "id" Value here from employee map props object??
}
boolean isIdValid(String name, String id){
//validation of id here
}
}
class Employee{
String name;
Map<String, Object> props;
}
직원 JSON
{
"name": "name1",
"props": {
"id": "123", //this value has to retreive
"field2": "hey"
}
}
나는 isIdValid 방법, 어떻게 PLS에 empName하고 "ID"값을 전달해야합니까?
또한 :
당신은을 사용할 수 있습니다 entrySet
로 :
return employees.stream()
.flatMap(e -> e.getProps().entrySet().stream())
.filter(s -> s.getKey().equals("id"))
.allMatch(e -> isIdValid(idValue).test(e.getValue()));
편집 : - 당신이 찾고있는 것처럼 업데이트 된 질문으로 보인다
return employees.stream()
.filter(emp -> emp.getProps().containsKey("id"))
.allMatch(emp -> isIdValid(emp.getName(),
(String) emp.getProps().get("id")));