栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

浅谈java运用注解实现对类中的方法检测的工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅谈java运用注解实现对类中的方法检测的工具

创建自定义注解

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Test {

}

建立测试类

public class UserTest {
	
	@Test
	public void testInsert() {
		User user = null;
		System.out.println(user.getUsername());
	}
	
	@Test
	public void testQuery() {
		Blog b = new Blog();
		b.setTips(new String[] {"技术","java","多线程"});
		String[] tips = b.getTips();
		System.out.println(tips[3]);
	}
	
	@Test
	public void divide() {
		System.out.println(10/0);
	}
	

}

编写工具类

public static void main(String[] args) {
		BufferedWriter bw = null;
		try {
			//记录方法总数
			int methodCount = 0;
			//记录错误方法总数
			int expCount = 0;
			//准备一个文件输出流,用于记录程序执行过程中的异常信息
			bw = new BufferedWriter(new FileWriter("log.txt"));
			// 获取类的Class对象
			Class clz = UserTest.class;
			//创建目标类型的实例对象
			Object obj = clz.newInstance();
			//获取所有的方法对象
			Method[] methods = clz.getMethods();
			for (Method m : methods) {
				if(m.isAnnotationPresent(Test.class)) {
					//统计总共有多少方法需要被测试
					methodCount++;
				}
			}
			bw.write("测试方法总数:" + methodCount);
			bw.newline();
			bw.write("================================");
			bw.newline();
			for (Method m : methods) {
				try {
					//如果方法上面包含了Test注解则作为测试方法进行测试
					if(m.isAnnotationPresent(Test.class)) {
						m.invoke(obj);
					}
				} catch (Exception e) {
					//异常方法计数器递增
					expCount++;
					bw.write(m.getName() + "出现异常");
					bw.newline();
					bw.write("类型:" + e.getCause().getClass());
					bw.newline();
					bw.write("原因:" + e.getCause().getMessage());
					bw.newline();
					bw.write("================================");
					bw.newline();
				}
			}
			bw.write("错误方法总数:" + expCount);
			bw.newline();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(bw != null) {
					bw.flush();
					bw.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

到此这篇关于浅谈java运用注解实现对类中的方法检测的工具的文章就介绍到这了,更多相关java运用注解实现对类中的方法检测的工具内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/132813.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号