简体   繁体   English

如何在Java对象中设置电子邮件地址的验证?

[英]how to setup validation for email address in java object?

i have below class, which is used by client for setting email details. 我有以下课程,客户可用来设置电子邮件详细信息。 I am providing this class in jar to the client. 我在罐子里提供这个类给客户。 I want to setup validation on to and subject. 我想对主题进行验证。 To will have an email address and subject should not be null and max filed. To将拥有一个电子邮件地址,主题不得为null,且不得超过max。 Is it possible to setup validation in below class and throw exception if not setup as per required. 如果未按要求进行设置,是否可以在下面的类中设置验证并引发异常。

Any help appreciated. 任何帮助表示赞赏。

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);
        }
}

for validating email address you could use commons-validator library (maven dependency: <groupId>commons-validator</groupId><artifactId>commons-validator</artifactId> ), class EmailValidator (from package org.apache.commons.validator.routines ) 要验证电子邮件地址,可以使用commons-validator库(maven依赖项: <groupId>commons-validator</groupId><artifactId>commons-validator</artifactId> ),类EmailValidator (来自org.apache.commons.validator.routines包) org.apache.commons.validator.routines

EmailValidator.getInstance().isValid(toEmailAddress)

as another option, you could use hibernate-valitator by annotating class fields like the following: 作为另一种选择,您可以通过注释类字段来使用hibernate-valitator ,如下所示:

class EmailDetails {
    @Email
    @NotNull
    private String to;

    @NotNull
    @Max(100)
    private String subject;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM