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

 更新时间:2020年08月03日 16:55:54   作者:LL_19980115  
这篇文章主要介绍了浅谈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运用注解实现对类中的方法检测的工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解SpringBoot健康检查的实现原理

    详解SpringBoot健康检查的实现原理

    这篇文章主要介绍了详解SpringBoot健康检查的实现原理,帮助大家更好的理解和学习使用SpringBoot框架,感兴趣的朋友可以了解下
    2021-03-03
  • 图解如何在Spring Boot中使用JSP页面

    图解如何在Spring Boot中使用JSP页面

    这篇文章主要介绍了图解如何在Spring Boot中使用JSP页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • JavaWeb中上传和下载文件实例代码

    JavaWeb中上传和下载文件实例代码

    这篇文章主要介绍了JavaWeb中上传和下载文件实例代码,需要的朋友可以参考下
    2017-06-06
  • MongoDB整合Spring实例详细讲解(含代码)

    MongoDB整合Spring实例详细讲解(含代码)

    这篇文章主要介绍了MongoDB整合Spring实例详细讲解(含代码),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 一文讲解如何解决Java中的IllegalArgumentException异常

    一文讲解如何解决Java中的IllegalArgumentException异常

    这篇文章主要给大家介绍了关于如何解决Java中IllegalArgumentException异常的相关资料,IllegalArgumentException是Java中的一个标准异常类,通常在方法接收到一个不合法的参数时抛出,需要的朋友可以参考下
    2024-03-03
  • HttpServletResponse乱码问题_动力节点Java学院整理

    HttpServletResponse乱码问题_动力节点Java学院整理

    这篇文章主要介绍了HttpServletResponse乱码问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • IDEA Maven源修改为国内阿里云镜像的正确方式

    IDEA Maven源修改为国内阿里云镜像的正确方式

    为了加快 Maven 依赖的下载速度,可以将 Maven 的中央仓库源修改为国内的镜像,比如阿里云镜像,以下是如何在 IntelliJ IDEA 中将 Maven 源修改为阿里云镜像的详细步骤,感兴趣的同学可以参考阅读一下
    2024-09-09
  • Spring 配置文件字段注入到List、Map

    Spring 配置文件字段注入到List、Map

    这篇文章主要介绍了Spring 配置文件字段注入到List、Map,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java判断当前日期是周几的方法汇总

    Java判断当前日期是周几的方法汇总

    在Java编程中,我们经常会遇到需要获取当前日期是周几的需求。根据国际惯例,一周通常是从周一开始,到周日结束,记作1至7,本文将介绍几种常用的Java方法,让你能够准确地判断当前日期是周几,感兴趣的朋友一起看看吧
    2024-03-03
  • Java构造器与传值学习总结

    Java构造器与传值学习总结

    这篇文章主要为大家详细介绍了Java构造器与传值学习总结,文中示例介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论