java - 如何在 java 对象中为电子邮件地址设置验证?
问题描述
我有以下课程,客户使用它来设置电子邮件详细信息。我在 jar 中向客户提供这个类。我想设置验证和主题。To 将有一个电子邮件地址和主题不应为 null 和 max 归档。是否可以在下面的类中设置验证,如果未按要求设置则抛出异常。
任何帮助表示赞赏。
class EmailDetails{
private String to;
private String subject;
public String getTo(){
return this.to;
}
public String getSubject(){
return this.subject;
}
private EmailDetails(EmailDetailsBuilder builder) {
this.to=builder.to;
this.subject=builder.subject;
}
public static class EmailDetailsBuilder{
// required parameters
private String to;
private String subject;
public EmailDetailsBuilder(String to, String subject){
this.to=to;
this.subject=subject;
}
public EmailDetailsBuilder setTo(String to) {
this.to = to;
return this;
}
public EmailDetailsBuilder setSubject(String subject) {
this.subject = subject;
return this;
}
public EmailDetails build(){
return new EmailDetails(this);
}
}
解决方案
为了验证电子邮件地址,您可以使用commons-validator
库(maven 依赖项:) <groupId>commons-validator</groupId><artifactId>commons-validator</artifactId>
、类EmailValidator
(来自包org.apache.commons.validator.routines
)
EmailValidator.getInstance().isValid(toEmailAddress)
作为另一种选择,您可以hibernate-valitator
通过注释类字段来使用,如下所示:
class EmailDetails {
@Email
@NotNull
private String to;
@NotNull
@Max(100)
private String subject;
}
推荐阅读
- linux - 调试(-x)时如何在Shell(/bin/sh)脚本中显示行号?
- mysql - 我的代码没有在 chrome 浏览器上显示图像,但可以在 Internet Explorer 上找到
- java - 是否可以推迟 C++ 中 const 变量的初始化,例如 Java 的“空白最终”功能?
- dart - 在 Android 上使用 Firebase Facebook 和 Google 登录时出现问题
- powershell - Powershell - 从文本中选择特定单词
- asp-classic - ASP 内容显示问题
- javascript - wp_verify_nonce 在登台服务器上返回 false,但在 localhost 上返回 true
- css-animations - 角引导手风琴面板动画
- jenkins - 如何使用 credentialId 在我自己的 jenkins 插件中检索用户名/密码
- r - 'data' 必须是向量类型,为 'NULL' R - PCA 和 as.matrix