Почему валидатор пишет, что метод должен возвращать пустую строку, если поля Map равны null? Собственно, он так и делает.
package com.javarush.task.task22.task2208;
import java.util.*;
/*
Формируем WHERE
*/
public class Solution {
public static void main(String[] args) {
Map<String, String> map = new LinkedHashMap<>();
map.put("name", "Ivanov");
map.put("country", "Ukraine");
map.put("city", "Kiev");
map.put("age", null);
System.out.println(getQuery(map));
}
public static String getQuery(Map<String, String> params) {
if (params.isEmpty()) return "";
StringBuilder builder = new StringBuilder();
for (Map.Entry<String, String> pair : params.entrySet()) {
if (pair.getKey() != null && pair.getValue() != null) {
builder.append(pair.getKey() + " = '" + pair.getValue() + "' and ");
}
}
builder.replace(builder.length()-5, builder.length(), "");
return builder.toString();
}
}