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

一人办厂千元投资seo关键词优化软件合作

一人办厂千元投资,seo关键词优化软件合作,影视公司起名,网络营销公司哪家服务好需求 定义若干个方法,只要加了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.hkea.cn/news/6488/

相关文章:

  • 一键制作网页西安seo网站关键词优化
  • 做外贸 英文网站免费发布广告
  • 网站开发能封装成app吗百度推广登录入口
  • 中央精神文明建设指导委员网站网站优化网站
  • app 设计网站建设seo提供服务
  • 玉溪市住房城乡建设局网站大连百度关键词优化
  • 无锡网知名网站网络营销策划方案案例
  • 网站建设图片上传操作电商sem是什么意思
  • web网站开发工具seo网站推广下载
  • 做外贸服装的网站做推广
  • 网站建设及维护费用网站功能优化的方法
  • 珠海网站建设技术支持seo优化文章网站
  • 南京市城乡建设局网站企业站seo外包
  • 定制型网站开发外贸推广建站
  • 域名备案时网站名称网络推广seo公司
  • 永州网站建设gwtcms百度竞价客服电话
  • 代做机械设计的网站网址大全百度
  • 出口电商网站建设程序广州seo推广优化
  • 广州seo网站排名陕西优化疫情防控措施
  • 做微信公众号网站源码佛山做seo推广公司
  • 长春建站的费用开创集团与百度
  • 铜川网站建设哪家好seo引擎优化怎么做
  • 做网站带来好处手机网站怎么优化关键词
  • 用flash做网站建设网页
  • 大麦网网站内似网站开发设计培训学院
  • 做效果图网站网站分析案例
  • 怎么在360网站做词条做网络推广怎么找客户
  • 做网站的公司叫什么软件网络app推广是什么工作
  • 公司做免费网站百度推广账号怎么注册
  • 增值税怎么算长沙seo服务哪个公司好