JAVA 注解验证字段(例子)
2014-02-13 10:46
453 查看
注解类
Util类
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @Documented @Inherited public @interface Validate { public Class<?> type() default String.class; }
Util类
public static String validate(Object param) { for (Field f : param.getClass().getDeclaredFields()) { if (f.isAnnotationPresent(Validate.class)) { Validate v = f.getAnnotation(Validate.class); Class<?> type = v.type(); f.setAccessible(true); Object obj = null; try { obj = f.get(param); } catch (IllegalArgumentException e) { LOG.error("注解异常",e); } catch (IllegalAccessException e) { LOG.error("注解异常",e); } if(obj==null) return f.getName()+"不能为空"; if(StringUtils.isBlank(obj.toString())) return f.getName()+"不能为空"; String vType = type.getName(); if("String".equals(type)) continue; String val = obj.toString(); boolean bool = false; try { if("java.lang.Integer".equals(vType)){ Integer.parseInt(val); }else if("java.lang.Long".equals(vType)){ Long.parseLong(val); }else if("java.lang.Byte".equals(vType)){ Byte.parseByte(val); } } catch (NumberFormatException e) { bool = true; } if(bool){ return f.getName()+"类型不正确"; } } } return null; }
相关文章推荐
- 数据挖掘--Apriori算法实现
- java 异常
- Spring 实例入门
- Java线程池
- java-01
- java---final 关键字 和 static 用法
- Java中遍历文件夹的2种方法
- 文本相似度——编辑距离算法&java简单实现
- java中的多线程测试例子
- Java 并发:Executors 和线程池
- Java数组声明、创建、初始化
- Java String.format()的用法
- java中的properties类简单用法
- Java中的异常处理机制的简单原理和应用
- Java 以post请求方式通过json格式调用Webservice接口
- Java中&&与&,||与|的区别
- Java发送邮件
- Spring3系列7- 自动扫描组件或Bean
- java Date格式的string转换为Date类型
- Java Jetty 结合 hessian 使用小例子