String (@Nullable Object existing, @Nullable Object fresh) { if (existing == null || fresh == null) { return reportProblem(existing, fresh); } Class<?> c1 = existing.getClass(); Class<?> c2 = fresh.getClass(); if (c1 != c2 && !objectsOfDifferentClassesCanStillBeEquivalent(existing, fresh)) { return whichIsField("class", existing, fresh, reportProblem(c1, c2)); } return null; }