文档章节

反射用在对负数的排查中

kuchawyz
 kuchawyz
发布于 10/10 18:08
字数 356
阅读 16
收藏 1

1. 很久没有写反射了,好多方法忘记了下面一个对负数的检查列子,不是很好,凑活用吧

public class NumberUtil {

	/**
	 *  返回对象属性,对象属性为double 不能为负数,为负数会提醒
	 *@Title:checkNumFilter
	 *@Description:TODO
	 * @Param:@param obj
	 * @Param:@return
	 *@return :boolean
	 * @throws SecurityException 
	 * @throws NoSuchMethodException 
	 * @throws InvocationTargetException 
	 * @throws IllegalArgumentException 
	 * @throws IllegalAccessException 
	 *@throws
	 *@author :kuchawyz2019年10月10日
	 */
	public static boolean checkNumFilter(Object obj) 
			throws NoSuchMethodException, 
			SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
		// TODO Auto-generated method stub
		if(obj != null){
			Class<?> clz = obj.getClass();
			Field[] filds = clz.getDeclaredFields();
			for(Field field :filds){
				if(field.getGenericType().toString().equals("double")){
					
					String methodName = "get"+upperCase(field.getName());
					Method m = obj.getClass().getDeclaredMethod(methodName);
					double val = (double) m.invoke(obj);
					if(val < 0){
						throw new ErrorFormateException("你传入的数字有负数的");
					}
				}
			}
			return true;
		}
		return false;
	}

	/**
	 * 对给定的字符串首字母变成大写
	 * (这里先将字符串转为字符数组,
	 *   然后将数组的第一个元素,即字符串首字母,进行ASCII 码前移,
	 *   ASCII 中大写字母从65开始,小写字母从97开始,所以这里减去32)
	 *@Title:upperCase
	 *@Description:TODO
	 * @Param:@param str
	 * @Param:@return
	 *@return :String
	 *@throws
	 *@author :kuchawyz2019年10月10日
	 */
	public static String upperCase(String str) {
	    char[] ch = str.toCharArray();
	    if (ch[0] >= 'a' && ch[0] <= 'z') {
	        ch[0] = (char) (ch[0] - 32);
	    }
	    return new String(ch);
	}
	

}

 

© 著作权归作者所有

kuchawyz
粉丝 6
博文 167
码字总数 66326
作品 0
北京
私信 提问
Python-进阶-functools模块小结

Python-进阶-functools模块小结 Python-进阶-functools模块小结 functools.partial functool.updatewrapper functool.wraps functools.reduce functools.cmptokey functools.totalordering ......

hyhlinux
2016/12/02
20
0
Python-functools模块

Python-进阶-functools模块小结 functools.partial functool.updatewrapper functool.wraps functools.reduce functools.cmptokey functools.totalordering 文档 地址 functools.partial 作用......

好铁
2016/11/28
39
0
MysqlDataTruncation: Data truncation: Out of range value for column 'column' at row 1

关键异常信息: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'bid' at row 1 Out of range value 是异常关键,中文意思是 超出范围值 一般有一下几......

为了美好的明天
2018/05/17
189
0
从0开始的OpenGL学习(二十八)

本文只要解决一个问题: 如何使用Blinn-Phong光照模型使高光更柔和、更平滑? 引言 在光照文章中,我们介绍了Phong光照模型来模拟真实的场景。看起来效果不错,但还是有点细微差别,啥差别呢...

闪电的蓝熊猫
2017/12/14
0
0
架构,改善程序复用性的设计~第五讲 复用离不开反射和IOC

从本文标题中可以看出,主要说的是反射技术和控制反转(IOC)技术,本文主要先介绍一下我对这两种技术的理解及它们的优缺点,最后再用实例来说一下使用方法。 反射:可以使用反射动态创建类型...

mcy247
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

什么样的人要学点python编程?请你对号入座

什么样的人需要学点python编程? 时代越来越不一样了,编程这种专业程序员的工作,已经开始应用于各种其他日常工作中,就以前象征着互联网的电脑,现在早已进入普通人家。 那么什么样的人需要...

这人就爱编程
18分钟前
3
0
哪吒之魔童降世的背景音乐怎么提取 视频中提取音频的方法

随着国漫的不断崛起一大批优质的动漫正向我们袭来,从大鱼海棠到大圣归来再到我们现在的哪吒让我们看到国漫质的飞跃,也让我们对国漫充满信心,前段时间哪吒之魔童降世以国产第二的票房下线到...

cenfeng123
21分钟前
3
0
springcloud 整合 springboot-admin 监控中心

Admin监控应用 Spring Boot提供的监控接口,例如:/health、/info等等,实际上除了之前提到的信息,还有其他信息业需要监控:当前处于活跃状态的会话数量、当前应用的并发数、延迟以及其他度...

java框架开发者
24分钟前
2
0
GMAT阅读提分要看课外读物,名师点评正确使用方法

阅读提分需要从积累阅读量开始,这种积累不能只靠做练习,还需要大量阅读课外读物。而最适合GRE考生的课外读物之一就是原版杂志。但看课外读物提分也要讲究方法。下面小编就为大家详解看课外...

bole6
26分钟前
1
0
第六次读Kingfisher网络图片缓存库的思考与感受(稍微有点起色)

这节我们来优化一下之前的 硬盘存储,看看kingfiisher哪里做得好,我们稍微来学习一下。 从硬盘里检索图片模仿改进: open func retrieveImageInDiskCache(forKey key: String, options:...

T型人才追梦者
26分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部