java实现对类中的方法检测 浅谈java运用注解实现对类中的方法检测的工具
LL_19980115 人气:0想了解浅谈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运用注解实现对类中的方法检测的工具内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
加载全部内容