DefaultValue (@NotNull DefaultValue self, @NotNull DefaultValue other) { if (self.unableToHasDefaultValue) return self; if (other.unableToHasDefaultValue) return other; if (self.defaultValue == null) return self; if (other.defaultValue == null) return other; if (Objects.equals(self.defaultValue, other.defaultValue)) return self; return new DefaultValue(true, null); }