您的位置:首页 > 新闻 > 资讯 > 小红书kol推广_项目外包合同_最新新闻热点事件及评论_成人专业技能培训机构

小红书kol推广_项目外包合同_最新新闻热点事件及评论_成人专业技能培训机构

2025/7/1 20:43:14 来源:https://blog.csdn.net/rainingCSDN/article/details/144277396  浏览:    关键词:小红书kol推广_项目外包合同_最新新闻热点事件及评论_成人专业技能培训机构
小红书kol推广_项目外包合同_最新新闻热点事件及评论_成人专业技能培训机构

目录

1、什么是注解的解析?

2、解析注解的案例

1、自定义一个注解

2、在类和方法上使用自己定义的注解

3、解析注解

3、模拟Junit框架案例

1、自定义一个MyTest注解

2、定义一个测试类,使用自定义的注解

3、写一个启动类

本文章主要讲解什么是注解的解析、以及注解的解析应用场景(代码演示)、用注解和反射模拟junit框架代码演示

不清楚注解和反射的同学可以先看我之前发的文章哦

1、什么是注解的解析?

就是判断类上、方法上、成员变量上是否存在注解,并把注解里面的内容给解析出来

2、解析注解的案例

1、自定义一个注解

@Target({ElementType.TYPE,ElementType.METHOD})  //作用范围为类和方法
@Retention(RetentionPolicy.RUNTIME)   //运行时有效
public @interface MyAnnotation {String value();double aaa() default 100;String[] bbb();
}

2、在类和方法上使用自己定义的注解

@MyAnnotation(value = "大美丽",bbb={"爱漂亮","很精致"})
public class MyClass {@MyAnnotation(value = "小林子",aaa = 200,bbb={"爱学习","很努力"})private String myMethod(){return "一个成员方法而已";}
}

3、解析注解

三部曲:

1、得到需要解析的类的class对象,进而获取该类指定 方法名

2、判断类或者方法上是否有该注解isAnnotationPresent()

3、获取指定的注解对象getDeclaredAnnotation()

public class AnalysisAnnotation {public static void main(String[] args) throws Exception {//1、先得到需要解析的类的class对象Class myClassClass = MyClass.class;//判断类上是否有这个MyAnnotation注解if (myClassClass.isAnnotationPresent(MyAnnotation.class)){//获取指定的注解对象MyAnnotation myAnnotation = (MyAnnotation)myClassClass.getDeclaredAnnotation(MyAnnotation.class);System.out.println(myAnnotation.aaa());System.out.println(myAnnotation.value());System.out.println(Arrays.toString(myAnnotation.bbb()));}System.out.println("=========");Method declaredMethod = myClassClass.getDeclaredMethod("myMethod");//判断方法上是否有这个MyAnnotation注解if (declaredMethod.isAnnotationPresent(MyAnnotation.class)){//获取指定的注解对象MyAnnotation myAnnotation = (MyAnnotation)declaredMethod.getDeclaredAnnotation(MyAnnotation.class);System.out.println(myAnnotation.aaa());System.out.println(myAnnotation.value());System.out.println(Arrays.toString(myAnnotation.bbb()));}}
}

运行该方法,可以看到控制台的打印,正是我们使用注解是传入的值。

3、模拟Junit框架案例

实现方式:注解结合反射的方式

1、自定义一个MyTest注解

@Target(ElementType.METHOD) //表示只能作用在方法上
@Retention(RetentionPolicy.RUNTIME)  //表示生命为运行时有效
public @interface MyTest {
}

2、定义一个测试类,使用自定义的注解

其中方法test2()、test3()是没有加注解的

public class JunitTest {//使用Junit框架必须是公开无参数无返回值的//我们使用自己的注解@MyTestpublic void test1(){System.out.println("我是test1");}public void test2(){System.out.println("我是test2");}public void test3(){System.out.println("我是test3");}@MyTestpublic void test4(){System.out.println("我是test4");}
}

3、写一个启动类

我们需要启动加了注解的方法,没有加注解的方法则不启动。

注意看代码注释

 public static void main(String[] args) throws Exception {JunitTest junitTest = new JunitTest();//1、获取JunitTest类的class文件Class junitTestClass = JunitTest.class;//2、获取该类的所有方法Method[] declaredMethods = junitTestClass.getDeclaredMethods();for (Method declaredMethod : declaredMethods) {//3、判断该方法是否加了@MyTest注解if (declaredMethod.isAnnotationPresent(MyTest.class)){//4、如果已经包含该注解,则该方法启动。记住方法是依赖于对象的,所以我们得实例化一个对象传进去。declaredMethod.invoke(junitTest);}}}

执行该启动类,可以看到只有加了@MyTest注解的方法才会执行

注解是用来标记程序,是为了让其他程序根据注解信息决定怎么去对待它们。

例如Junit框架案例,加了注解就执行,不加注解就不执行。

以上就是我对如何自定义框架的理解啦,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com