码迷,mamicode.com
首页 > 其他好文 > 详细

利用反射、注解校验字段类型

时间:2021-02-24 12:52:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:属性   注解   利用   blank   group   ted   val   inspect   red   

自定义注解

import java.lang.annotation.*;

@Target({ElementType.FIELD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CheckNumber {
}

属性添加注解
/* 身高 */
@Column(name = "HEIGHT")
// 校验数据库定义最大长度
@javax.validation.constraints.Size(
groups = {com.anxhit.fw.core.validation.AddGroup.class, com.anxhit.fw.core.validation.UpdGroup.class},
max = 32, message = "height 超过最大长度")
@CheckNumber
private String height;

利用反射判断是否有注解并判断注解的值
public void  checkFiledIsNumber(GeneralInspectionPO generalInspectionPO) throws BaseException {
if(generalInspectionPO == null){
return;
}
JSONObject beanJson = JSONObject.fromObject(generalInspectionPO);
Field[] fields = GeneralInspectionPO.class.getDeclaredFields();
for(Field field :fields){
if(field.isAnnotationPresent(CheckNumber.class)){
String fieldJson = underLineToHump(field.getName());
String value = beanJson.getString(fieldJson);
if(StringUtils.isNotBlank(value)){
NumberUtils.checkIsNumberThrowException(value);
}
}
}
}

利用反射、注解校验字段类型

标签:属性   注解   利用   blank   group   ted   val   inspect   red   

原文地址:https://www.cnblogs.com/xiaojiangkeji/p/14435565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!