Я хочу сравнить два заданных объекта, которые могут быть пустыми во время выполнения. В моем примере:
@Test
public void shouldCompareAgents() {
Agent a1 = new Agent();
a1.setId("4711");
a1.setType(null);
Agent a2 = new Agent();
a2.setId(a1.getId());
a2.setType(a1.getType());
assertEquals("Agent.getId", 0,
Comparator.comparing(Agent::getId).compare(a1, a2));
assertEquals("Agent.getType", 0,
Comparator.comparing(Agent::getType).compare(a1, a2));
}
Утверждение id работает нормально, по типу не как a1.getType()
равно null. Есть ли способ избежать этого? Я пробовал Comparator.nullsLast(...)
, но это не имеет смысла, поскольку я не сортирую элементы здесь.
У меня есть много утверждений, поэтому я бы предпочел "однострочный" . Я новичок в лямбда-выражениях.