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