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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

LL_19980115   2021-02-02 我要评论
想了解浅谈java运用注解实现对类中的方法检测的工具的相关内容吗,LL_19980115在本文为您仔细讲解java实现对类中的方法检测的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java注解,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运用注解实现对类中的方法检测的工具内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们