当前位置: 首页 > news >正文

做网站很麻烦吗宝安电子厂做高端网站

做网站很麻烦吗,宝安电子厂做高端网站,公众微信绑定网站帐号,求网站建设方法需求 定义若干个方法,只要加了MyTest注解,就可以在启动时被触发执行 分析 定义一个自定义注解MyTest,只能注解方法,存活范围是一直都在定义若干个方法,只要有MyTest注解的方法就能在启动时被触发执行,没有这…

 需求

  • 定义若干个方法,只要加了MyTest注解,就可以在启动时被触发执行

分析

  1. 定义一个自定义注解MyTest,只能注解方法,存活范围是一直都在
  2. 定义若干个方法,只要有@MyTest注解的方法就能在启动时被触发执行,没有这个注解的方法不能执行
package com.csdn.d8_annotation;
import java.lang.annotation.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class AnnotationDemo4 {@MyTestpublic void test1() {System.out.println("======test1======");}public void test2() {System.out.println("======test2======");}@MyTestpublic void test3() {System.out.println("======test3======");}/*** 启动菜单:有注解的才被调用。* @param args*/public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {AnnotationDemo4 t = new AnnotationDemo4();//a.获取类对象Class<AnnotationDemo4> c = AnnotationDemo4.class;//b.提取全部方法Method[] method = c.getDeclaredMethods();//c.遍历方法,看是否有MyTest注解,有就跑它for (Method method1 : method) {if (method1.isAnnotationPresent(MyTest.class)) {method1.invoke(t);}}}
}@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyTest {}
D:\Java\jdk-17\bin\java.exe 
======test3======
======test1======

 简单的测试框架

  • 当主方法执行后,会自动自行被检测的所有方法(加了Check注解的方法),判断方法是否有异常,记录到文件中
package com.csdn.annotation;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
/*** 简单的测试框架*/
public class TestCheck {public static void main(String[] args) throws IOException {/*Calculator calculator = new Calculator();Class<Calculator> clazz = Calculator.class;Method[] m = clazz.getDeclaredMethods();for (Method method : m) {if (method.isAnnotationPresent(Check.class)) {method.invoke(calculator);}}
*///1、创建计算器对象Calculator cal = new Calculator();//2、获取字节码文件对象Class<Calculator> clazz = Calculator.class;//3、获取所有方法Method[] me = clazz.getDeclaredMethods();int number = 0;//出现异常的次数BufferedWriter bw = new BufferedWriter(new FileWriter("bug.txt"));for (Method method : me) {//4、判断方法上是否有Check注解if (method.isAnnotationPresent(Check.class)) {try {method.invoke(cal);} catch (Exception e) {//6、捕获异常//记录到文件中number++;bw.write(method.getName() + " 方法出异常了");bw.newLine();bw.write("异常的名称:" + e.getCause().getClass().getSimpleName());bw.newLine();bw.write("异常的原因:"+e.getCause().getMessage());bw.newLine();bw.write("--------------------------");bw.newLine();}}}bw.write("本次测试一共出现" + number + "次异常");bw.flush();bw.close();}}
/*** 小明定义的计算器类*/
class Calculator {@Checkpublic void add() {String str = null;str.toString();System.out.println("1+0=" + (1 + 0));}@Checkpublic void sub() {System.out.println("1-0=" + (1 - 0));}@Checkpublic void mul() {System.out.println("1*0=" + (1 * 0));}@Checkpublic void div() {System.out.println("1/0=" + (1 / 0));}public void show() {System.out.println("永无bug...");}
}@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface Check {}
D:\Java\jdk-17\bin\java.exe
1-0=1
1*0=0

 

小结

  1. 以后大多数时候,我们会使用注解,而不是自定义注解
  2. 注解的作用:第一个给编译器用,第二个给解析程序用
  3. 注解不是程序的一部分,可以理解为注解就是一个标签
http://www.yayakq.cn/news/865002/

相关文章:

  • 广东企业网站seo报价网络营销有什么新的变化
  • 地产网站建设方案有网站如何做淘宝客
  • 网站备案幕布要求杭州网站建设 乐云践新专家
  • 什么网站做护工网站首页布局
  • 网站建设 合作协议外贸网站后台
  • 网站建设及优化重要性wordpress的函数
  • 上海网站建设官方网站网站左侧导航栏设计
  • 专业摄影网站推荐百度ai入口
  • 安徽智能网站建设中国国家标准建设信息网站
  • 怎样建立微网站新网站怎么推广
  • 赤峰城乡建设局网站阳春做网站公司
  • 网站快速备案多少钱太原网站制作报价
  • 个人备案网站用于企业万网买的网站备案
  • 官方网站下载打印机驱动工作服
  • share poine 户做网站网站开发后台编辑系统
  • redhat7做网站过程wordpress自定义链接导航
  • 网站服务器到期了怎么续费公司起名字大全免费取名
  • 做电缆好的网站抖音代运营机构常州
  • 网站设计方案定制网站开发 成都
  • 外卖网站制作广东省建设厅官方网站电话
  • 湿地公园网站开发招标国家高新技术企业有哪些
  • wap网站 链接微信域名空间商界面
  • dw 做的网站能用吗网站建设前途
  • 网站建设网络推广方案ppt如何验证网站
  • 官方网站建设与维护好处南京免费发布信息网站
  • 网站开发需求大吗一个论坛网站应该怎么做
  • 炫酷的网站设计如何做网站建设团队建设
  • 怎么建设网站网页企业vi设计公司哪家好
  • wordpress中文网站模板下载查指数
  • 十堰微网站建设费用新月直播大全免费下载手机版