什么是注解? 英文是annotation

注解的主要作用:对我们的程序进行标注和解释。

注解名

说明

@Override

描述子类重写父类的方法

@Deprecated

描述方法过时

@SuppressWarnings

压制警告

注解和注释的区别

注释:给程序员看的

注解:给编译器看的(让虚拟机看到程序中的注解,注解代表程序的一些特殊功能)

自定义注解

默认值可以不设置

在使用注解的时候如果注解里面的属性没有指定默认值

那么我们就需要手动给出注解属性的设置值

//特殊属性value 如果我们只设置了value没有默认值,那么在调用注解时,可以省略value字段只给出值value的设置值

代码:

主自定义注解:

public @interface Anno1 {//定义一个基本类型的属性int a() default 23;//定义一个String类型的属性public String name() ;//定义一个class类似的属性public Class clazz() default Anno2.class;//定义一个注解类型的属性public Anno2 anno() default @Anno2;//定义一个枚举类型的属性public Season season() default Season.SPRING;//以上类型的一维数组//int 数组public int[] arr()default {1,2,3,4,5};//枚举数组public Season[] seasons()default {Season.SPRING,Season.SUMMER};//特殊属性value 如果我们只设置了value没有默认值,那么在调用注解时,可以省略value字段}

Anno2:

public @interface Anno2 {
}

枚举类Season:

public enum Season {SPRING,SUMMER,AUTUMN,WINTER;
}

测试类

@Anno1(name = "libai")
public class AnnoTest {}

练习:获取某个类中的所有方法并判断是否有相应注解

注解类:

@Retention(value = RetentionPolicy.RUNTIME)
public @interface Test {
}

方法类:

public class UseTest {@Testpublic void method(){System.out.println("我是method");}public void function(){System.out.println("我是function");}@Testpublic void show(){System.out.println("我是show");}
}

测试类:

public class AnnoTest {public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException {//通过反射获取UseTest类的字节码文件对象Class<?> clazz = Class.forName("com.myAnnotation.UseTest");//创建一个对象UseTest useTest = new UseTest();//通过反射获取类中所有非继承方法对象Method[] methods = clazz.getDeclaredMethods();//遍历获得每一个方法对象for (Method method : methods) {//isAnnotationPresent 判断当前方法上是否有指定的注解//参数为注解的字节码文件对象//返回值:布尔if (method.isAnnotationPresent(Test.class)) {method.invoke(useTest);}}}
}

元注解:描述注解的注解

如:

@Retention(value = RetentionPolicy.RUNTIME)

public @interface Test { }

元注解名

说明

@Target

指定了注解能在哪里使用

@Retention

可以理解为保留时间(生命周期)

@Inherited

表示修饰的自定义注解可以被子类继承

@Documented

表示该自定义注解,会出现在API文档里面。

@Target ({ElementType.FIELD,ElementType.TYPE,ElementType.METHOD})  指定注解在哪使用  分别为 变量, 类, 方法

@Retention()  如果不写 表示这个注解只能存活在源码阶段

随意要设置  @Retention(RetentionPolicy.RUNTIME) //让注解活到字节码运行阶段

@Inherited  直接写,就代表这个注解可以被继承

单元测试

以前的测试方式:

我们都是将代码全部写完才进行测试。这样其实不是很好

在以后工作的是后,都是写完一部分代码就测试一部分。这样,带码中的问题可以得到及时修复

也避免了,由于代码过多,从而无法准确定位到错误的代码

Junit概述

JUnit是一个开放源代码的测试工具

提供注解来识别测试方法

JUnit测试可以让你编写代码更快并能提高质量

JUnit优雅简介没那么复杂,花费时间较少

JUnit在一个条中显示进度。如果运行良好则是绿色。运行失败则是红色

Junit使用的基本流程

将JUnit的jar包导入到工程中

编写测试方法测试方法必须是公共的无参数无返回值的非静态方法

在测试方法上使用@Test注解标注该方法是一个测试方法

选中测试方法右键通过junit运行该方法\

单元测试的三个常用注解 before,test,after.flv

java 注解 单元测试相关推荐

  1. Java 注解深入理解

    内容概要 Annotation的概念 Annotation的作用 Annotation的分类 系统内置注解 元注解 自定义注解 解析注解信息 JDK8注解新特性 附:项目源码地址 一.Annotati ...

  2. java指导手册,Java 注解指导手册 – 终极向导

    编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它. 现在,是时候汇总这些和注解相关的信息到一篇文章了,祝大家阅读愉快. 目录 什么是注解 介绍 消费器 注解语法和注解元素 ...

  3. ABAP和Java的单元测试Unit Test

    ABAP ABAP class单元测试的执行入口,CLASS_SETUP, 是硬编码在单元测试框架实现CL_AUNIT_TEST_CLASS里的. 待执行的单元测试方法通过CL_AUNIT_TEST_ ...

  4. Java 注解指导手册 – 终极向导

    转载自  Java 注解指导手册 – 终极向导 译文出处: Toien Liu   原文出处:Dani Buiza 编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它. 我 ...

  5. java 注解 属性 类型_收藏!你一定要知道的Java8中的注解

    全文共3002字,预计学习时长6分钟 海中有大量的注解! JavaSE 1.5中首次引入了注解.Java注解的目的是允许程序员编写关于其程序的元数据.在OracleDocs中,注解的定义是:" ...

  6. 聊聊 Java 的单元测试

    单元测试框架 Java​ 中,​JUnit ​和 ​TestNG ​是最受欢迎的单元测试框架. JUnit TestNG JUnit 首先是大名鼎鼎的 JUnit ,JUnit 已经成为 Java 应 ...

  7. 聊聊Java的单元测试

    单元测试框架 Java​ 中,​JUnit ​和 ​TestNG ​是最受欢迎的单元测试框架. JUnit TestNG JUnit 首先是大名鼎鼎的 JUnit ,JUnit 已经成为 Java 应 ...

  8. (60)Java基础 --单元测试

    目录 一.测试的概念 二.使用Junit4.x进行单元环境 1.环境搭建 2.使用步骤 3.常见注解 三.规范的Junit测试方式 四.断言 1.为什么要使用断言 2.什么是断言(猜测) 3.常用AP ...

  9. IDEA Java Junit单元测试入门实战

    IDEA Java Junit单元测试入门实战 1.下载jar包 2.在IDEA中添加jar包 3.创建单元测试代码 junit的使用: junit不是javase的一部分,想要使用需要导入jar包. ...

最新文章

  1. 单相计量芯片RN8209D使用经验分享(转)
  2. 根据数据库表gengxin实体类_ASP.NET开发实战——(十二)数据库之EF Migrations
  3. django_4:数据库1——django操作数据库
  4. Oracle conn 协议适配器错误解决
  5. 推动隐私计算技术,360数科提出分割式神经网络框架
  6. 纯新手DSP编程--5.29--基于CCS的DSP片级支持库CSL
  7. Spring Cloud微服务实战:手把手带你整合eurekazuulfeignhystrix(附源码)
  8. 【算法笔记】最短路-Dijkstra、Floyd、SPFA模版总结+复习
  9. 电脑字体变成繁体中文怎么更改过来呢
  10. 直观认识Windows
  11. Nothing Phone官宣,手机厂新秀靠啥出圈?
  12. 为什么要申报绿色工厂?
  13. 普乐蛙VR航天体验|航天vr设备|航空vr设备厂家案例分享
  14. 解决 Agent JAR loaded but agent failed to initialize
  15. 宇宙 量子计算机,整个宇宙就是一台巨型量子计算机 俄新研究颠覆宇宙学理论...
  16. 笔记本计算机忘记密码,win7笔记本电脑密码忘记了怎么办_win7笔记本电脑密码忘了怎么办-win7之家...
  17. Android 常用色值
  18. 比勤奋更能决定人生的,是系统思维(构建知识体系)
  19. 【两周快速入门pr】五、生活化vlog——你第一个vlog小视频(附相机推荐)
  20. Wireshark中无法显示网卡列表的解决方法

热门文章

  1. 多项新规重磅发布,微信视频号近期需要关注这几点
  2. 华南师大 2017 年 ACM 程序设计竞赛新生初赛题解
  3. vcard规范 二维码名片的格式
  4. maven-shade-plugin入门指南
  5. 固定资产管理软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. ota升级过程提示cache分区太小导致升级失败
  7. 【超级简单】如何设置网页语言为中文,让谷歌浏览器不再弹出翻译?
  8. 青海特色美食制作工艺数字化保护平台
  9. Shopify批量上货助手-Shopify独立站
  10. 汉诺塔递归 C语言 代码简洁