能否演示@PhoneNumber例子

当然可以。让我给你演示一个@PhoneNumber(电话号码验证注解)的例子。

假设我们在Java Spring Boot框架中实现:

  1. 定义注解
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneNumberValidator.class)
public @interface PhoneNumber {
    String message() default "手机号格式不正确";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
  1. 实现验证逻辑
public class PhoneNumberValidator implements ConstraintValidator<PhoneNumber, String> {
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        if (value == null || value.isEmpty()) {
            return false;
        }
        // 简易手机号正则:1开头的11位数字
        return value.matches("^1[3-9]\d{9}$");
    }
}
  1. 使用注解
public class User {
    @PhoneNumber
    private String phone;
}

这样在用户提交手机号时,系统会自动检查是否符合规则(比如13800138000这样的格式)。如果不符合,就会返回"手机号格式不正确"的错误提示。