Java 内置注解

一、内置注解

         Java内置注解 也称 Java标准注解,是Java JDK 中自带的注解。Java 中有许多标准注解,以下是一些常见的标准注解:

        1. @Override:用于表示一个方法是重写父类中的方法。

        2. @Deprecated:用于标记已经过时的方法或类,提醒开发者不再使用。

        3. @SuppressWarnings:用于抑制编译器产生的警告信息。

        4. @FunctionalInterface:用于标记一个接口是函数式接口,即只包含一个抽象方法的接口。

        5. @SafeVarargs:用于消除关于可变参数方法的警告。

        这只是一小部分 Java 中的标准注解,还有更多其他的注解可供使用。

 二、示例介绍

2.1.@Override 

 2.1.1.测试案例

接口层代码: 

 接口的实现:

 2.1.2.使用注意

        @Override 用于标识该方法是重写父类的方法,通常用于标识接口的实现方法; 

        如果试图使用 @Override 标记一个实际上并没有覆写父类的方法时,java 编译器会告警。

2.1.3.源码 

2.2.@Deprecated

 2.2.1.测试案例 

package com.cp.test3;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;

@Component
public class TD01 {

    @PostConstruct
    public List<String> setData() {
        List<String> list = new ArrayList<>();
        t_test(list);
        t_prod(list);
        System.out.println("list = " + list);
        return list;
    }

    @Deprecated
    public void t_test(List<String> list){
        list.add("我存放了测试数据!");
    }
    public void t_prod(List<String> list){
        list.add("我存放了生产数据!");
    }
}

 2.2.2.运行结果

list = [我存放了测试数据!, 我存放了生产数据!]

2.2.3.使用注意

        被标注的方法,在使用时如下所示,提示中会出现线条。被注解标注的方法,表示方法已过时或已弃用,提醒开发者谨慎使用,但依旧可以用。 

 2.2.4.源码

 2.3.@SuppressWarnings

2.3.1.测试案例(一) 

         此时代码在强制转换时,编译器给了高亮显示的警告,在鼠标放到高亮显示处时,右下侧给出了警告原因和建议。此时提醒的是:Unchecked cast(未检查的强制转换)

2.3.2.使用示例 

         上面使用【单类型抑制警告】,加了注解以后,高亮显示就没了。一般来说,编译器提醒什么,value的值就是什么;例如下面

参数作用
deprecation使用了不赞成使用的类或方法时的警告
unchecked执行了未检查的转换时的警告,例如当使用集合时没有用泛型(Generics)来指定集合保存的类型
fallthrough当Switch程序块直接通往下一种情况而没有Break 时的警告
path在类路径、源文件路径等中有不存在的路径时的警告
serial当在可序列化的类上缺少serialVersionUID定义时的警告
finally任何finally子句不能正常完成时的警告
all所有的警告

 

        但有时提醒没准确表达,也可以自定义,只要共同开发者知道也行;可以使用all,直接标识所有,例如下面使用【所有类型抑制警告】:

         all 是抑制所有报错,但不规范的使用可能会为程序带来风险,所以一般不推荐用 all 。

2.3.3.测试案例(二) 

 2.3.4.使用示例

         此时是使用多种类型的抑制警告,可以比较清晰的看到实用前后的代码对比。

2.3.5源码 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/86729.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WinPlan经营大脑垂直大模型,一站式解决企业经营管理难题

WinPlan经营大脑是杭州数利得科技有限公司打造的一款SAAS产品,为市场现存的企业经营管理难题,提供一站式解决方案。助力企业经营管理转型,帮助企业快速实现“经营规划管理&数据分析”线上化、可视化、数字化。 WinPlan决策系统 算力 阿里云 腾讯云 AWS亚马逊 框架 业务数…

Python入门【原生字符串、边界字符、search函数、re模块中其他常用的函数 、贪婪模式和非贪婪模式、择一匹配(|)的使用、分组】(三十)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

MySQL 数据备份和数据恢复

目录 一、数据备份 1、概述 2、MySQLdump命令备份 1&#xff09;备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4&#xff09;备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 一、数据备份 1、概述 数据备…

An easy problem

一、题目 we define f(A) 1, f(a) -1, f(B) 2, f(b) -2, … f(Z) 26, f(z) -26; Give you a letter x and a number y , you should output the result of yf(x). Input On the first line, contains a number T.then T lines follow, each line is a case.each case …

一、数据库基础

数据库 一、数据库基础 1、一些概念 数据库&#xff1a;数据库&#xff08;DataBase &#xff0c;简称DB&#xff09;&#xff0c;就是信息的集合。数据库是由数据库管理系统管理的数据的集合&#xff1b;数据库管理系统&#xff1a;简称DBMS 。是一种操纵和管理数据库的大型…

Vue 项目布署后,刷新页面(或跳转页面)出现 404 解决办法

Vue 项目布署后&#xff0c;刷新页面&#xff08;或跳转页面&#xff09;出现 404 问题背景为什么会出现404解决办法&#xff08;两种&#xff09;方法一&#xff1a;改变服务器配置方法二&#xff1a;改变路由模式 单页应用(SPA)概念 问题背景 今天重新部署一个vue项目的时候…

【NX】NX二次开发BlockUI集列表的详细使用步骤

最近使用NX二次开发&#xff0c;需要用到集列表&#xff0c;也就是SetList这个控件&#xff0c;然而网上相关的资料和范例实在是太少&#xff0c;有幸找到《NX二次开发-BlockUI集列表的使用技巧》和《UG&#xff08;NX&#xff09;二次开发 BlockUI 集列表使用方法》&#xff0…

Vue Cli 脚手架安装

Vue Cli 脚手架安装 首先&#xff0c;改一下仓库地址&#xff0c;使用下面的命令cnpm淘宝镜像加速 npm install cnpm -g --registryhttps://registry.npm.taobao.org下载安装 vue 脚手架 npm install -g vue/cli查看 vue cli 脚手架是否安装成功&#xff0c;如果输入命令出现…

【业务功能篇77】微服务-OSS对象存储-上传下载图片

3. 图片管理 文件存储的几种方式 单体架构可以直接把图片存储在服务器中 但是在分布式环境下面直接存储在WEB服务器中的方式就不可取了&#xff0c;这时我们需要搭建独立的文件存储服务器。 3.1 开通阿里云服务 针对本系统中的相关的文件&#xff0c;图片&#xff0c;文本等…

Linux系统安全:NAT(SNAT、DNAT)

目录 一.NAT 二.SNAT 三.DNAT 一.NAT NAT: network address translation&#xff0c;支持PREROUTING&#xff0c;INPUT&#xff0c;OUTPUT&#xff0c;POSTROUTING四个链 请求报文&#xff1a;修改源/目标IP&#xff0c; 响应报文&#xff1a;修改源/目标IP&#xff0c;根据…

测试框架pytest教程(11)-pytestAPI

常量 pytest.__version__ #输出pytest版本 pytest.version_tuple #输出版本的元组形式 功能 pytest.approx pytest.approx 是一个用于进行数值近似比较的 pytest 断言工具。 在测试中&#xff0c;有时候需要对浮点数或其他具有小数部分的数值进行比较。然而&#xff0c;由于…

Linux面试笔试题(6)

91、6块300G的硬盘做raid5&#xff0c;新的设备容量是多大&#xff08;C&#xff09; A 900G B 1800G C 1500G D 300G 6300G−300G 1500G 由于一块硬盘用于奇偶校验&#xff0c;所以设备容量将是1500G. Raid 5是一种磁盘阵列&#xff0c;将数据分散到多个硬盘上以提高性能和可…

【⑬MySQL | 数据类型(一)】简介 | 整数 | 浮点 | 定点类型

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL数据类型简介 | 整数 | 浮点 | 定点类型的分享✨ 目录 前言0.数据类型简介1 整数类型2 浮点类型3 定点类型4 日期/时间类型总结 0.数据类型简介 数据类型&#xff08;data_type&#xff09;是指系统中所允许的…

LeetCode算法递归类—二叉树中的最大路径和

目录 124. 二叉树中的最大路径和 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 代码&#xff1a; 运行结果&#xff1a; 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该…

【图论】拓扑排序

一.定义 拓扑排序是一种对有向无环图&#xff08;DAG&#xff09;进行排序的算法&#xff0c;使得图中的每个顶点在排序中都位于其依赖的顶点之后。它通常用于表示一些任务之间的依赖关系&#xff0c;例如在一个项目中&#xff0c;某些任务必须在其他任务之前完成。 拓扑排序的…

SQL注入之延时注入

文章目录 延时注入是什么&#xff1f;延时注入获取数据库版本号 延时注入是什么&#xff1f; 延时注入就是利用sleep()函数通过if语句判断所写的语句真假&#xff0c;如果为真返回我们想要的东西&#xff08;例如&#xff1a;数据库的长度&#xff0c;数据库的名字等&#xff0…

认识负载均衡||WEBSHELL

目录 一、负载均衡 1.nginx负载均衡算法 2.nginx反向代理-负载均衡 二、webshell 1.构造不含数字和字母的webshell 2.如何绕过 一、负载均衡 1.nginx负载均衡算法 &#xff08;1&#xff09;轮询&#xff08;默认&#xff09;每个请求按时间顺序逐一分配到不同的后端服务&…

达梦数据库读写分离集群原理

概述 本文就达梦数据库读写分离原理进行介绍。 达梦读写分离集群特点&#xff1a; 可以配置8个即时备库或8个实时备库&#xff1b;读写操作自动分离、负载均衡&#xff1b;提供数据同步&#xff1b;备库故障自动处理&#xff0c;故障恢复自动数据同步等功能&#xff0c;也支持…

无涯教程-TensorFlow - Keras

Keras易于学习的高级Python库&#xff0c;可在TensorFlow框架上运行&#xff0c;它的重点是理解深度学习技术&#xff0c;如为神经网络创建层&#xff0c;以维护形状和数学细节的概念。框架的创建可以分为以下两种类型- 顺序API功能API 无涯教程将使用Jupyter Notebook执行和…