Session { @Override public boolean equals(@Nullable Object obj) { if (obj == null) { return false; } if (!(obj instanceof Session)) { return false; } String sessionId = getSessionUUID(); String comparisonSessionId = ((Session) obj).getSessionUUID(); if (sessionId == null && comparisonSessionId == null) { return true; } if (sessionId == null || comparisonSessionId == null) { return false; } return sessionId.equals(comparisonSessionId); } private  Session();   Session(String uuid); @Nullable String getSessionUUID(); long getSessionID(); @Override boolean equals(@Nullable Object obj);  }
@Test public void equals() { Session sessionA = new Session(null); Session sessionB = new Session(null); Assert.assertEquals(sessionA, sessionB); Session sessionC = new Session("foo"); Assert.assertFalse(sessionA.equals(sessionC)); Assert.assertFalse(sessionC.equals(sessionA)); sessionA = new Session("foo"); sessionB = new Session("fOo"); Assert.assertEquals(sessionA, sessionB); }