Вы можете изменить свой метод getGroupingKey
следующим образом:
private static String getGroupingKey(Code code) {
return code.getDescription() + "~" + (code.getType() == null ? "" : code.getType());
}
или следующим образом:
private static String getGroupingKey(Code code) {
return code.getDescription() + "~" + Optional.ofNullable(code.getType()).orElse("");
}
, или вы также можете изменить свой метод getType()
напрямую, как в:
public String getType() {
return type == null ? "" : type;
}
или:
public String getType() {
return Optional.ofNullable(type).orElse("");
}
Либо должно работать одинаково.Выберите один в зависимости от ваших требований, я думаю ..
Если вы добавите следующий метод toString
в свой класс Code
:
@Override
public String toString() {
return "Code{" +
"type='" + type + '\'' +
", description='" + description + '\'' +
'}';
}
.. с измененным методом getGroupingKey
(или метод getType
) вывод должен выглядеть следующим образом:
{abc~=[Code{type='', description='abc'}, Code{type='null', description='abc'}]}
1
Редактировать: Вы также можете рассмотреть возможность инициализации типа пустой строкой вместо null
, тогда вам не нужно будет изменятьчто-нибудь:
private String type = "";
Это тоже может быть вариант ..