public record Email(String value) { public Email { Objects.requireNonNull(value, "value"); value = value.strip().toLowerCase(Locale.ROOT); int at = value.indexOf('@'); if (at <= 0 || at != value.lastIndexOf('@') || at == value.length() - 1) { throw new IllegalArgumentException("not an email: " + value); } } }