首页 > 解决方案 > 如何在 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);
        }
}

标签: javaspringvalidation

解决方案


为了验证电子邮件地址,您可以使用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;
}

推荐阅读