Он из-за лямбд не пропускает? или нужны какие-нибудь доп проверки типа на не-пустоту ключей?
Я для прикола даже оборачивал результат в мнимый стригбилдер, чтобы он присутствовал именно в getQuery, а не только в лямбде. Валидатор остался не впечатлен. 😐
package com.javarush.task.task22.task2208;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
/*
Формируем WHERE
*/
public class Solution {
public static void main(String[] args) {
// Map<String, String> map = new HashMap<>();
// map.put("Alpha", "first");
// map.put("Bravo", "second");
// map.put("Charlie", "third");
// map.put("null", "null");
// System.out.println(getQuery(map));
}
public static String getQuery(Map<String, String> params) {
return params.entrySet().stream()
.filter(param -> !param.getValue().equals("null"))
.map(param -> new StringBuilder(param.getKey()).append(" = '").append(param.getValue()).append("'"))
.collect(Collectors.joining(" and "));
}
}