简体   繁体   中英

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. 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 )

EmailValidator.getInstance().isValid(toEmailAddress)

as another option, you could use hibernate-valitator by annotating class fields like the following:

class EmailDetails {
    @Email
    @NotNull
    private String to;

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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