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手机号码校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 构建Maven项目时可能遇到的问题

    构建Maven项目时可能遇到的问题

    本篇是针对构建 Maven 项目时可能出现的问题进行总结,并给出解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03
  • java天数计算函数(当前月天数、某月总天数及某月剩余天数)4种方法实现代码

    java天数计算函数(当前月天数、某月总天数及某月剩余天数)4种方法实现代码

    日常开发中会遇到关于日期的计算,比如当月的天数、两日期之间的天数、当月剩余天数等等,这篇文章主要给大家介绍了关于java天数计算函数(当前月天数、某月总天数及某月剩余天数)4种方法实现的相关资料,需要的朋友可以参考下
    2023-10-10
  • java中输出pdf文件代码分享

    java中输出pdf文件代码分享

    这篇文章主要介绍了java中输出pdf文件代码分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • SpringBoot项目中多数据源配置方法与使用场景

    SpringBoot项目中多数据源配置方法与使用场景

    在 Spring Boot 中配置多数据源是一个非常常见的需求,本文将为大家详细介绍两种主流的实现方式与使用场景,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-07-07
  • SpringSecurity7.0新特性详解

    SpringSecurity7.0新特性详解

    本文主要介绍了Spring Security 7.0 新特性详解,文中通过示例代码介绍的非常详细,帮助你更好地理解和应用这些新特性,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • Java的AQS基本原理详细分析

    Java的AQS基本原理详细分析

    这篇文章主要介绍了Java的AQS基本原理详细分析,AQS是Abstract Queued Synchronizer的简称,AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,本文主要讲解分析其基本原理,需要的朋友可以参考下
    2024-01-01
  • Java详细讲解依赖注入的方式

    Java详细讲解依赖注入的方式

    Idea中使用@Autowire注解会出现提示黄线,强迫症患者看着很难受,使用构造器注入或者setter方法注入后可解决,下面我们一起来看看
    2022-06-06
  • javaCV开发详解之推流器和录制器的实现

    javaCV开发详解之推流器和录制器的实现

    这篇文章主要介绍了javaCV开发详解之推流器和录制器实现,对JavaCV感兴趣的同学,可以参考下
    2021-04-04
  • Java使用Spire.Presentation for Java库合并PowerPoint的技术教程

    Java使用Spire.Presentation for Java库合并PowerPoint的技术教

    在现代企业和个人开发中,文档处理是不可或缺的一环,尤其是在报告演示、内容整合等场景下,PowerPoint 文件的自动化处理需求日益增长,本文将深入探讨如何利用 Java 编程语言,结合强大的 Spire.Presentation for Java库,实现PowerPoiont文件的合并
    2026-01-01
  • 使用Java实现在Excel中创建下拉列表

    使用Java实现在Excel中创建下拉列表

    下拉列表(下拉框)可以确保用户仅从预先给定的选项中进行选择,这样不仅能减少数据输入错误,还能节省时间提高效率,下面我们就来看看如何在java中利用免费库实现创建下拉列表吧
    2024-03-03

最新评论