枚举、注解及单元测试的简单笔记

简介: 枚举、注解及单元测试的简单笔记

一、枚举


概述:枚举是一种特殊的类,表示一组常量


定义格式:


public enum 枚举类名{
    枚举项1,枚举项2,枚举项3;
 }


特点:


1. 所有枚举类都是Enum类的子类,所以枚举类可以使用Enum类中的方法


2. 可以通过枚举类名.枚举项去访问指定的枚举项


3. 每一个枚举项实际上是是该枚举类的一个对象


4. 枚举项可以有构造方法,但必须是private修饰,如果不提供无参构造,则必须在枚举项中使用有参构造


5. 枚举类还可以有成员变量,成员方法,抽象方法,但是抽象方法必须在枚举项中重写


6. 枚举类第一行必须是枚举项


常用方法:


方法名 说明
String name() 获取枚举项名称
int ordinal() 返回枚举项索引
int compartTo(E o) 返回与其他枚举项索引的差值
String toString() 返回枚举项名称
static T valueOf(Class type,String name) 获取指定枚举类中指定名字的枚举项
T[] values() 获取所有的枚举项


二、注解


注解作用是:对程序进行标注和解释


三个注解:


注解 说明
@Override 描述子类重写父类方法
@Deprecated 描述方法过时
@SuppressWarnings 压制警告


注解和注释的区别:


1、注释是给程序员看


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


自定义注解


格式:


public @interface 注解名{
    public 元素类型 元素名() default 默认值;
}


元素前的public修饰是默认的可以省略,但是不能使用其他的修饰


default是用来设置默认值的,在使用的时候如果不指定元素的值则默认是设置的这个默认值


元素类型可以使用如下:


基本数据类型


String类型


Class类型


注解类型


枚举类型


以上类型的一维数组


元注解:


1. 元注解是修饰注解的注解,JDK提供了一些元注解使用


2. 常用元注解


@Target :用于定义被修饰的注解可以应用于代码中的哪些位置,如


1. 类或接口: ElementType.TYPE


2. 成员变量: ElementType.FIELD


3. 成员方法: ElementType.METHOD


4. 构造方法: ElementType.CONSTRUCTOR


5. 方法参数: ElementType.PARAMETER


6. 范例 :

@Target(ElementType.TYPE)
public @interface Demo{}//说明Demo注解可以用在类前面


@Retention :用于定义注解的生命周期


1. 仅编译期: RetentionPolicty.SOURCE


2. 仅class文件: RetentionPolicty.CLASS


3. 运行期: RetentionPolicty.RUNTIME


4. 通常我们自定义的注解是在运行期使用的,所以自定义注解时会使用这个元注解修饰自定义注解,并设置为RetentionPolicty.RUNTIME


注解的使用:


1、格式:


//方式1,给指定的元素赋值,没有赋值的将使用默认值
@注解名(元素1 = 属性值,元素2 = 属性值)
//方式2,给元素名为value的元素赋值,value是特殊的一个元素,如果自定义注解中不给
出该元素而使用这种方式赋值会报错
@注解名(属性值)
//方式3,全部元素使用默认值
@注解名


● Class.isAnnotationPresent(Class)


● Field.isAnnotationPresent(Class)


● Method.isAnnotationPresent(Class)


● Constructor.isAnnotationPresent(Class)


● 注意:方法的参数是需要判断的注解的Class对象,返回值类型是boolean


三、单元测试


● 使用Junit来进行单元测试


● Junit提供注解来识别测试方法


● 可以查看允许情况


● 基本使用步骤:


1. 将Junit的jar包导入项目


2. 测试的方法必须是公共的、无参数、无返回值的非静态方法


3. 在需要测试的方法上方用@Test注解标注该方法是个测试方法


4. 开始测试


● 常用的三个注解:


注解 说明
@Test 表示测试该方法
@Before 表示在测试的方法前运行
@After 表示在测试的方法后运行
目录
相关文章
|
2月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
22天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
28天前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
27天前
|
人工智能 计算机视觉
AI计算机视觉笔记十五:编写检测的yolov5测试代码
该文为原创文章,如需转载,请注明出处。本文作者在成功运行 `detect.py` 后,因代码难以理解而编写了一个简易测试程序,用于加载YOLOv5模型并检测图像中的对象,特别是“人”类目标。代码实现了从摄像头或图片读取帧、进行颜色转换,并利用YOLOv5进行推理,最后将检测框和置信度绘制在输出图像上,并保存为 `result.jpg`。如果缺少某些模块,可使用 `pip install` 安装。如涉及版权问题或需获取完整代码,请联系作者。
|
28天前
|
机器学习/深度学习 人工智能 文字识别
AI计算机视觉笔记二十:PaddleOCR环境搭建及测试
OCR技术广泛应用于日常生活中,与人脸识别一样常见。PaddleOCR是一个基于飞桨的OCR工具库,具有超轻量级中文OCR模型,支持中英文数字组合、竖排及长文本识别。本文档详细介绍了PaddleOCR的学习过程,包括环境搭建、安装、样本标注及测试步骤。使用AutoDL云平台进行环境创建,并提供了详细的命令行操作指南,帮助用户顺利完成PaddleOCR的部署与测试。
|
1月前
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记六:mediapipe测试
MediaPipe是由Google Research开发并开源的多媒体机器学习框架,已被集成到YouTube、Google Lens等重要产品中。该框架支持多种功能,如物体检测、自拍分割、头发分割、人脸检测、手部检测及运动追踪等。本文档将指导你通过Python环境搭建与测试MediaPipe,包括创建虚拟环境、安装依赖库,并进行手指骨骼识别测试。具体步骤涵盖环境配置、摄像头数据处理及结果显示。
|
1月前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记十四:YOLOV5环境搭建及测试全过程
本文详细记录了在Windows 10环境下从零开始搭建yolov5环境并进行测试的全过程,涵盖环境配置、依赖安装及模型测试等关键步骤。文章首先介绍了所需环境(Python 3.8、yolov5-5.0),接着详细说明了如何使用Miniconda3创建与激活虚拟环境,并通过具体命令演示了如何下载安装yolov5及相关依赖库。最后,通过一系列命令展示了如何下载预训练模型并对示例图像进行目标检测,同时解决了一些常见错误。适合初学者跟随实践。如需转载,请注明原文出处。
|
3月前
|
测试技术
详解单元测试问题之Mockito中@Mock注解的执行步骤如何解决
详解单元测试问题之Mockito中@Mock注解的执行步骤如何解决
28 2
|
3月前
|
测试技术
详解单元测试问题之处理@Mock注解时mock对象的创建如何解决
详解单元测试问题之处理@Mock注解时mock对象的创建如何解决
32 1
|
3月前
|
测试技术
详解单元测试问题之@InjectMocks注解的执行逻辑如何解决
详解单元测试问题之@InjectMocks注解的执行逻辑如何解决
36 1
下一篇
无影云桌面