Java Lombok实现手机号码校验的示例代码

 更新时间:2023年07月05日 14:29:14   作者:python100  
手机号码校验通常是系统开发中最基础的功能之一,本文主要介绍了Java Lombok实现手机号码校验的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

手机号码校验通常是系统开发中最基础的功能之一。在本文中,我们将会使用Java Lombok框架实现一个简单的手机号码校验功能。Java Lombok是一个开源的Java库,用于自动化生成Java类的代码,它可以大大减少Java类的冗余代码,提高程序员的开发效率。

一、添加Lombok依赖

首先,在项目的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <scope>provided</scope>
</dependency>

这里我们使用的是Maven构建工具,如果您使用的是Gradle,则需要添加以下依赖:

implementation 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'

二、实体类中添加Lombok注解

在实体类中添加下面的Lombok注解:

import lombok.Data;
import lombok.NonNull;
@Data
public class User {
    @NonNull
    private String name;
    // 添加正则表达式判断手机号码格式是否正确
    @Pattern(regexp = "^[1][3,4,5,7,8][0-9]{9}$", message = "请输入正确的手机号码")
    private String mobilePhone;
}

在上面的例子中,我们使用了@Data注解,它可以在编译期间自动为我们生成Java类的基本代码,如getter、setter和toString。

同时,在mobilePhone字段上,我们使用了@Pattern注解进行手机号码格式的校验。

三、使用实体类进行手机号码校验

我们可以使用以下代码对自定义的User类的mobilePhone字段进行校验:

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
public class UserValidator {
    public boolean isValid(User user) {
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<User>> constraintViolations = validator.validate(user);
        return constraintViolations.isEmpty();
    }
}

在上面的例子中,我们使用了Java Validation API进行手机号码校验。使用这个API需要引入以下依赖:

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

在isValid方法中,我们首先创建了一个Validator对象,然后调用它的validate方法对传入的User对象进行校验。如果校验结果中没有错误信息,我们就返回true,否则返回false。

四、使用JUnit对手机号码校验进行单元测试

以下是一个简单的JUnit测试类,在测试方法中,我们通过构建一个User对象并将其mobilePhone字段设置为不合法的值时,来检查是否能捕获到校验错误:

import org.junit.Assert;
import org.junit.Test;
public class UserValidatorTest {
    @Test
    public void testMobilePhoneValidation() {
        User user = new User();
        user.setName("张三");
        user.setMobilePhone("1234567890");
        UserValidator userValidator = new UserValidator();
        Assert.assertFalse(userValidator.isValid(user));
    }
}

五、完整代码

以下是完整代码,供参考:

1. User.java

import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.Pattern;
@Data
public class User {
    @NonNull
    private String name;
    @Pattern(regexp = "^[1][3,4,5,7,8][0-9]{9}$", message = "请输入正确的手机号码")
    private String mobilePhone;
}

2. UserValidator.java

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
public class UserValidator {
    public boolean isValid(User user) {
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<User>> constraintViolations = validator.validate(user);
        return constraintViolations.isEmpty();
    }
}

3. UserValidatorTest.java

import org.junit.Assert;
import org.junit.Test;
public class UserValidatorTest {
    @Test
    public void testMobilePhoneValidation() {
        User user = new User();
        user.setName("张三");
        user.setMobilePhone("1234567890");
        UserValidator userValidator = new UserValidator();
        Assert.assertFalse(userValidator.isValid(user));
    }
}

六、总结

在本文中,我们使用了Java Lombok和Java Validation API框架实现了手机号码校验功能。Lombok大大减少了Java类的冗余代码,Validation API则使我们可以轻松地实现校验功能。

到此这篇关于Java Lombok实现手机号码校验的示例代码的文章就介绍到这了,更多相关Java Lombok手机号码校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 老程序员教你一天时间完成Java迷宫小游戏

    老程序员教你一天时间完成Java迷宫小游戏

    最近经常在机房看同学在玩一个走迷宫的游戏,比较有趣,自己也用java写一个实现随机生成迷宫的算法,其实就是一个图的深度优先遍历算法.
    2021-08-08
  • ExpressionUtil工具类的应用实例

    ExpressionUtil工具类的应用实例

    这篇文章主要给大家介绍了关于ExpressionUtil工具类的应用实例,常用的工具类有很多,这是其中一个,了解基本的API可以帮助我们更好的开发,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Spring框架对于Bean的管理详解

    Spring框架对于Bean的管理详解

    在实际开发中,我们往往要用到Spring容器为我们提供的诸多资源,例如想要获取到容器中的配置、获取到容器中的Bean等等。本文为大家详细讲讲工具类如何获取到Spring容器中的Bean,需要的可以参考一下
    2022-07-07
  • Java数据结构BFS广搜法解决迷宫问题

    Java数据结构BFS广搜法解决迷宫问题

    广搜BFS的基本思想是: 首先访问初始点v并将其标志为已经访问。接着通过邻接关系将邻接点入队。然后每访问过一个顶点则出队。按照顺序,访问每一个顶点的所有未被访问过的顶点直到所有的顶点均被访问过。广度优先遍历类似与层次遍历
    2022-04-04
  • Spring之spring-context-indexer依赖详解

    Spring之spring-context-indexer依赖详解

    这篇文章主要介绍了Spring之spring-context-indexer依赖详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 解决SpringBoot在IDEA中热部署失效问题

    解决SpringBoot在IDEA中热部署失效问题

    热部署是指程序运行过程中实时更新或替换其组件的技术,即项目正在启动中,修改了配置文件中某个值或者添加了某个方法或者修改了某个方法参数,本文给大家介绍了解决SpringBoot在IDEA中热部署失效问题,需要的朋友可以参考下
    2024-01-01
  • 全面掌握Java中的循环控制语句与条件判断语句的使用

    全面掌握Java中的循环控制语句与条件判断语句的使用

    这篇文章主要介绍了Java中的循环控制语句与条件判断语句的使用,循环和判断是Java编程中流程控制的基础,需要的朋友可以参考下
    2016-02-02
  • SpringBoot2.x配置HTTPS访问的过程

    SpringBoot2.x配置HTTPS访问的过程

    这篇文章主要介绍了SpringBoot2.x配置HTTPS访问的过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Spring MVC处理方法返回值过程解析

    Spring MVC处理方法返回值过程解析

    这篇文章主要介绍了Spring MVC处理方法返回值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java利用朴素贝叶斯分类算法实现信息分类

    Java利用朴素贝叶斯分类算法实现信息分类

    贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统计知识进行分类的算法。本文将利用朴素贝叶斯分类算法实现信息分类,需要的可以参考一下
    2022-06-06

最新评论