Java?Lombok實(shí)現(xiàn)手機(jī)號(hào)碼校驗(yàn)的示例代碼
手機(jī)號(hào)碼校驗(yàn)通常是系統(tǒng)開(kāi)發(fā)中最基礎(chǔ)的功能之一。在本文中,我們將會(huì)使用Java Lombok框架實(shí)現(xiàn)一個(gè)簡(jiǎn)單的手機(jī)號(hào)碼校驗(yàn)功能。Java Lombok是一個(gè)開(kāi)源的Java庫(kù),用于自動(dòng)化生成Java類的代碼,它可以大大減少Java類的冗余代碼,提高程序員的開(kāi)發(fā)效率。
一、添加Lombok依賴
首先,在項(xiàng)目的pom.xml文件中添加以下依賴:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>
這里我們使用的是Maven構(gòu)建工具,如果您使用的是Gradle,則需要添加以下依賴:
implementation 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20'
二、實(shí)體類中添加Lombok注解
在實(shí)體類中添加下面的Lombok注解:
import lombok.Data; import lombok.NonNull; @Data public class User { @NonNull private String name; // 添加正則表達(dá)式判斷手機(jī)號(hào)碼格式是否正確 @Pattern(regexp = "^[1][3,4,5,7,8][0-9]{9}$", message = "請(qǐng)輸入正確的手機(jī)號(hào)碼") private String mobilePhone; }
在上面的例子中,我們使用了@Data注解,它可以在編譯期間自動(dòng)為我們生成Java類的基本代碼,如getter、setter和toString。
同時(shí),在mobilePhone字段上,我們使用了@Pattern注解進(jìn)行手機(jī)號(hào)碼格式的校驗(yàn)。
三、使用實(shí)體類進(jìn)行手機(jī)號(hào)碼校驗(yàn)
我們可以使用以下代碼對(duì)自定義的User類的mobilePhone字段進(jìn)行校驗(yàn):
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進(jìn)行手機(jī)號(hào)碼校驗(yàn)。使用這個(gè)API需要引入以下依賴:
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency>
在isValid方法中,我們首先創(chuàng)建了一個(gè)Validator對(duì)象,然后調(diào)用它的validate方法對(duì)傳入的User對(duì)象進(jìn)行校驗(yàn)。如果校驗(yàn)結(jié)果中沒(méi)有錯(cuò)誤信息,我們就返回true,否則返回false。
四、使用JUnit對(duì)手機(jī)號(hào)碼校驗(yàn)進(jìn)行單元測(cè)試
以下是一個(gè)簡(jiǎn)單的JUnit測(cè)試類,在測(cè)試方法中,我們通過(guò)構(gòu)建一個(gè)User對(duì)象并將其mobilePhone字段設(shè)置為不合法的值時(shí),來(lái)檢查是否能捕獲到校驗(yàn)錯(cuò)誤:
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 = "請(qǐng)輸入正確的手機(jī)號(hào)碼") 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)); } }
六、總結(jié)
在本文中,我們使用了Java Lombok和Java Validation API框架實(shí)現(xiàn)了手機(jī)號(hào)碼校驗(yàn)功能。Lombok大大減少了Java類的冗余代碼,Validation API則使我們可以輕松地實(shí)現(xiàn)校驗(yàn)功能。
到此這篇關(guān)于Java Lombok實(shí)現(xiàn)手機(jī)號(hào)碼校驗(yàn)的示例代碼的文章就介紹到這了,更多相關(guān)Java Lombok手機(jī)號(hào)碼校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+VUE前后端分離實(shí)現(xiàn)疫情防疫平臺(tái)JAVA
本文主要使用了Java、springmvc、VUE、node.js、mybatis、mysql、tomcat、jquery、layui、bootstarp、JavaScript、html、css、jsp、log4j等一些常見(jiàn)的基本技術(shù),實(shí)現(xiàn)一個(gè)疫情防疫小平臺(tái)2021-08-08Java實(shí)現(xiàn)生成自定義時(shí)長(zhǎng)的靜音音頻
這篇文章主要介紹了如何通過(guò)Java實(shí)現(xiàn)一個(gè)音頻工具類,可以實(shí)現(xiàn)生成一段自定義時(shí)長(zhǎng)(精確到毫秒)的wav音頻。感興趣的小伙伴可以了解一下2022-01-01springboot責(zé)任鏈模式實(shí)現(xiàn)多級(jí)校驗(yàn)
責(zé)任鏈模式是將鏈中的每一個(gè)節(jié)點(diǎn)看作是一個(gè)對(duì)象,每個(gè)節(jié)點(diǎn)處理的請(qǐng)求不同,且內(nèi)部自動(dòng)維護(hù)一個(gè)下一節(jié)點(diǎn)對(duì)象,下面我們來(lái)聊聊springboot如何利用責(zé)任鏈模式實(shí)現(xiàn)多級(jí)校驗(yàn)吧2024-11-11Java正確實(shí)現(xiàn)一個(gè)單例設(shè)計(jì)模式的示例
今天小編就為大家分享一篇關(guān)于Java正確實(shí)現(xiàn)一個(gè)單例設(shè)計(jì)模式的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01Win10系統(tǒng)下配置java環(huán)境變量的全過(guò)程
這篇文章主要給大家介紹了關(guān)于Win10系統(tǒng)下配置java環(huán)境變量的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11解決SpringMVC、tomcat、Intellij idea、ajax中文亂碼問(wèn)題
這篇文章主要介紹了解決SpringMVC、tomcat、Intellij idea、ajax中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09