java自定义注解实现执行所有要测试的接口
- /*
- * 注解类
- * */
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.METHOD)
- public @interface Demo04Check {
- }
- /**要执行的小明定义的计算器类
- * @author :cza
- * @date :2020/3/10 16:56
- * @description :
- * @modyified By:
- */
- public class Demo04Calculator {
- //加法
- @Demo04Check
- public void add(){
- System.out.println("1 + 0 = "+(1+0));
- }
- //减法
- @Demo04Check
- public void sub(){
- System.out.println("1 - 0 = "+(1 - 0));
- }
- //乘法
- @Demo04Check
- public void mul(){
- System.out.println("1 * 0 = "+(1 * 0));
- }
- //除法
- @Demo04Check
- public void div(){
- System.out.println("1 /0 = "+(1/ 0));
- }
- @Demo04Check
- public void show(){
- System.out.println("永无bug...");
- }
- }
- /**
- * 简单的测试框架
- * 当主方法执行后,会自动自行被检测的所有方法(加上Demo04Check注解的方法),判断方法是否有异常,记录到文件中
- * @author :cza
- * @date :2020/3/10 17:00
- * @description :
- * @modyified By:
- */
- public class Demo4TestCheck {
- public static void main(String[] args) throws IOException {
- //1、创建计算器对象
- Demo04Calculator c=new Demo04Calculator();
- //2.获取字节码文件对象
- Class cls = c.getClass();
- //3.获取所有方法
- Method[] methods=cls.getMethods();
- int number=0; //出现异常的次数
- BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("check04bug.txt"));
- for (Method method: methods
- ) {
- //4.判断方法上是否有Check注解
- if(method.isAnnotationPresent(Demo04Check.class)){
- //5、有执行
- try {
- method.invoke(c);
- } catch (Exception e) {
- //6.捕获异常
- number++;
- bufferedWriter.write(method.getName()+"方法出现异常了");
- bufferedWriter.newLine();
- bufferedWriter.write("异常的名称:"+e.getCause().getClass().getSimpleName());
- bufferedWriter.newLine();
- bufferedWriter.write("异常的原因:"+e.getCause().getMessage());
- bufferedWriter.newLine();
- bufferedWriter.write("------------------------------");
- bufferedWriter.newLine();
- }
- }
- }
- bufferedWriter.write("本次测试一共出现"+number+"次异常");
- bufferedWriter.flush();
- bufferedWriter.close();
- }
- }
java自定义注解实现执行所有要测试的接口的更多相关文章
- java自定义注解知识实例及SSH框架下,拦截器中无法获得java注解属性值的问题
一.java自定义注解相关知识 注解这东西是java语言本身就带有的功能特点,于struts,hibernate,spring这三个框架无关.使用得当特别方便.基于注解的xml文件配置方式也受到人们的 ...
- Java自定义注解和运行时靠反射获取注解
转载:http://blog.csdn.net/bao19901210/article/details/17201173/ java自定义注解 Java注解是附加在代码中的一些元信息,用于一些工具在编 ...
- java自定义注解类
一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...
- java自定义注解实现前后台参数校验
2016.07.26 qq:992591601,欢迎交流 首先介绍些基本概念: Annotations(also known as metadata)provide a formalized way ...
- java自定义注解注解方法、类、属性等等【转】
http://anole1982.iteye.com/blog/1450421 http://www.open-open.com/doc/view/51fe76de67214563b20b385320 ...
- Java自定义注解的实现
Java自定义注解的实现,总共三步(eg.@RandomlyThrowsException): 1.首先编写一个自定义注解@RandomlyThrowsException package com.gi ...
- Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)
Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性) 前言:由于前段时间忙于写接口,在接口中需要做很多的参数校验,本着简洁.高效的原则,便写了这个小工具供自己使用(内容 ...
- JAVA自定义注解 ------ Annotation
日常开发工作中,合理的使用注解,可以简化代码编写以及使代码结构更加简单,下面记录下,JAVA自定义注解的开发过程. 定义注解声明类. 编写注解处理器(主要起作用部分). 使用注解. 相关知识点介绍, ...
- Java 自定义注解
在spring的应用中,经常使用注解进行开发,这样有利于加快开发的速度. 介绍一下自定义注解: 首先,自定义注解要新建一个@interface,这个是一个注解的接口,在此接口上有这样几个注解: @Do ...
随机推荐
- 基于casbin的RBAC权限实践
五一假期疫情封在家也没事做,就想来优化一下一个前端容器小项目 之前的TODOlist里面有一项是权限这块时隔2年了还一直没有动手 迟迟没搞主要还是我太懒了,哈哈 其实我一直想要找一个轻量级的权限通用方 ...
- Go 语言快速开发入门
目录 需求 开发的步骤 linux下如何开发Go程序 MAC下如何开发Go程序 Golang执行流程分析 编译和运行说明 Go程序开发的注意事项 Go语言的转义字符(escapechar) Golan ...
- gol处理命令行参数 flag
os.Args获取命令行参数 os.Args是一个srting的切片,用来存储所有的命令行参数 package main import ( "fmt" "os" ...
- Blazor和Vue对比学习(基础1.2):模板语法和Razor语法
Vue使用模板语法,Blazor使用祖传的Razor语法,从逻辑和方向上看,两者极为相似,比如: 都基于HTML 都通过声明式地将组件实例的状态(数据/方法)绑定到呈现的DOM上 都通过指令实现更加丰 ...
- 基于.NetCore开发博客项目 StarBlog - (6) 页面开发之博客文章列表
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- 企业应用架构研究系列二十六:信号量SemaphoreSlim与Semaphore
在进行多线程程序的开发和设计的过程中,不可避免的需要引入semaphore信号量这个组件,这是.net框架提供的一个对多线程计数互斥的方案,就是允许指定的线程个数访问特定的资源而增加的 一个" ...
- B - A Simple Task
https://vjudge.net/contest/446582#problem/B 这道题是一道不错的线段树练代码能力的题. #include<bits/stdc++.h> using ...
- 《C Primer Plus》第六版笔记--7~10章
目录 第七章 C控制语句:分支和跳转 第八章 字符输入/输出和输入验证 第九章 函数 第十章 数组和指针 第七章 C控制语句:分支和跳转 if else 用法 if (expression) //ex ...
- 面试常问的dubbo的spi机制到底是什么?
前言 dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力.作为spring cloud alibaba体系中重要的一部分,随着spring cloud alibaba在 ...
- FlinkSQL源码阅读-schema管理
在Flink SQL中, 元数据的管理分为三层: catalog-> database-> table, 我们知道Flink SQL是依托calcite框架来进行SQL执行树生产,校验,优 ...