浅谈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运用注解实现对类中的方法检测的工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款
微信支付我们主要聚焦于这三种支付方式,其中JSPAI与APP主要与uniapp开发微信小程序与APP对接,本文主要介绍了Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款,具有一定的参考价值,感兴趣的可以了解一下2021-12-12
最新评论