Java @SafeVarargs注解

在介绍 @SafeVarargs 注解用法之前,先来看看如下代码:

public class HelloWorld {public static void main(String[] args) {// 传递可变参数,参数是泛型集合display(10, 20, 30);// 传递可变参数,参数是非泛型集合display("10", 20, 30); // 会有编译警告}public static <T> void display(T... array) {for (T arg : array) {System.out.println(arg.getClass().getName() + ":" + arg);}}
}

代码第 10 行声明了一种可变参数方法 display,display 方法参数个数可以变化,它可以接受不确定数量的相同类型的参数。可以通过在参数类型名后面加入…的方式来表示这是可变参数。可变参数方法中的参数类型相同,为此声明参数时需要指定泛型

但是调用可变参数方法时,应该提供相同类型的参数,代码第 4 行调用时没有警告,而代码第 6 行调用时则会发生警告,这个警告是 unchecked(未检查不安全代码),就是因为将非泛型变量赋值给泛型变量所发生的。

可用 @SafeVarargs 注解抑制编译器警告,修改代码如下:

public class HelloWorld {public static void main(String[] args) {// 传递可变参数,参数是泛型集合display(10, 20, 30);// 传递可变参数,参数是非泛型集合display("10", 20, 30); // 没有@SafeVarargs会有编译警告}@SafeVarargspublic static <T> void display(T... array) {for (T arg : array) {System.out.println(arg.getClass().getName() + ":" + arg);}}
}

上述代码在可变参数 display 前添加了 @SafeVarargs 注解,当然也可以使用 @SuppressWarnings(“unchecked”) 注解,但是两者相比较来说 @SafeVarargs 注解更适合。

注意:@SafeVarargs注解不适用于非 static 或非 final 声明的方法,对于未声明为 static 或 final 的方法,如果要抑制 unchecked 警告,可以使用 @SuppressWarnings 注解。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mmap函数_Linux内存映射mmap原理分析

一直都对内存映射文件这个概念很模糊&#xff0c;不知道它和虚拟内存有什么区别&#xff0c;而且映射这个词也很让人迷茫&#xff0c;今天终于搞清楚了。。。下面&#xff0c;我先解释一下我对映射这个词的理解&#xff0c;再区分一下几个容易混淆的概念&#xff0c;之后&#…

灰色关联法 —— python

目录 1.简介 2.算法详解 2.1 数据标准化 2.2 计算灰色相关系数 2.3 计算灰色关联度系数 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 绘制 x1,x4,x5,x6,x7 的折线图 3.4 计算灰色相关系数 完整代码 1.简介 对于两个系统之间的因素&#xff0c;其随时间或不同对象而变…

arraylist线程安全吗_Java中的集合和线程安全

通过Java指南我们知道Java集合框架(Collection Framework)如何为并发服务&#xff0c;我们应该如何在单线程和多线程中使用集合(Collection)。话题有点高端&#xff0c;我们不是很好理解。所以&#xff0c;我会尽可能的描述的简单点。通过这篇指南&#xff0c;你将会对Java集合…

Java @FunctionalInterface注解

FunctionalInterface 就是用来指定某个接口必须是函数式接口&#xff0c;所以 FunInterface 只能修饰接口&#xff0c;不能修饰其它程序元素。 函数式接口就是为 Java 8 的 Lambda 表达式准备的&#xff0c;Java 8 允许使用 Lambda 表达式创建函数式接口的实例&#xff0c;因此…

灰色关联与TOPSIS法 —— python

目录 1.简介 2.算法详解 2.1 指标正向化及标准化 2.2 找到最大最小参考向量 2.3 计算与参考向量的相关系数 2.4 求评分 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 得到最大最小参考行 3.4 与最大值的灰色相关系数 3.5 与最小值的灰色相关系数 3.6 计算综合评分…

spark 数据框 删除列_pandas 常用的数据处理函数

在数据分析过程中&#xff0c;首先就是对数据进行清洗和处理&#xff0c;而使用 python 进行处理的朋友们&#xff0c;对 pandas 包肯定是熟悉不过的了。pandas 的功能很强大&#xff0c;基本的数据处理操作都可以找到对应函数去使用&#xff0c;想全面了解的朋友可以查看相关文…

Java元注解作用及使用

元注解是负责对其它注解进行说明的注解&#xff0c;自定义注解时可以使用元注解。Java 5 定义了 4 个注解&#xff0c;分别是 Documented、Target、Retention 和 Inherited。Java 8 又增加了 Repeatable 和 Native 两个注解。这些注解都可以在 java.lang.annotation 包中找到。…

灰色预测法 —— matlab

目录 1.简介 2.算法详解 2.1 生成累加数据 2.2 累加后的数据表达式 2.3 求解2.2的未知参数 3.实例分析 3.1 导入数据 3.2 进行累加数据 3.3 求解系数 3.4 预测数据及对比 完整代码 1.简介 灰色系统理论认为对既含有已知信息又含有未知或非确定信息的系统进行预测&a…

jpa 自定义sql if_SpringBoot整合JPA实现多数据源及读写分离

SpringBoot整合JPA实现多数据源及读写分离项目地址&#xff1a;https://github.com/baojingyu/spring-boot-jpa-dynamic-datasource本项目使用 SpringBoot 和 SpringData JPA 实现多数据源&#xff0c;动态数据源的切换。前段时间写 MySQL 主从复制的技术分享&#xff0c;我就在…

时间序列分析简介

目录 1.引言 2.时间序列的定义 3.时间序列分析方法 &#xff08;1&#xff09;描述性时间序列分析 &#xff08;2&#xff09;统计时序分析 时序分析方法 时域分析方法 1.引言 最早的时间序列分析可以追溯到7000年前&#xff0c;古埃及把尼罗河涨落的情况逐天记录下来&a…

jupyter notebook和python有什么区别_Jupyter Notebook 有哪些奇技淫巧?

Towards Data Science专栏的作者Parul Pandey总结了七大Jupyter的进阶用法&#xff1a; 一、执行shell命令 Shell是一种与计算机进行文本交互的方式。 一般来讲&#xff0c;当你正在使用Python编译器&#xff0c;需要用到命令行工具的时候&#xff0c;要在shell和IDLE之间进行切…

时间序列的预处理

目录 一、特征统计量 1.概率分布 2.特征统计量 二、平稳时间序列的定义 严平稳与宽平稳的关系 三、平稳时间序列的统计性 四、平稳性的重大意义 五、平稳性检验 时序图检验 自相关图检验 R绘图 一、特征统计量 平稳性是某些时间序列具有的一种统计特征要描述清楚这个…

Java系统流

每个 Java 程序运行时都带有一个系统流&#xff0c;系统流对应的类为 java.lang.System。Sytem 类封装了 Java 程序运行时的 3 个系统流&#xff0c;分别通过 in、out 和 err 变量来引用。这 3 个系统流如下所示&#xff1a; System.in&#xff1a;标准输入流&#xff0c;默认设…

R中‘ts‘ object must have one or more observations

错误如下&#xff1a; 为什么会出现&#xff0c;如下错误是因为我读取数据是&#xff0c;没有对数据进行分割&#xff0c;而是直接读取&#xff0c;然后使用的 最初读取方式为&#xff1a; 改变后的读取方式&#xff1a; 此时&#xff0c;再调用上面提示错误的那行代码试试&am…

python编码和解码_uu --- 对 uuencode 文件进行编码与解码 — Python 3.7.9 文档

uu --- 对 uuencode 文件进行编码与解码 此模块使用 uuencode 格式来编码和解码文件&#xff0c;以便任意二进制数据可通过仅限 ASCII 码的连接进行传输。 在任何要求文件参数的地方&#xff0c;这些方法都接受文件类对象。 为了保持向下兼容&#xff0c;也接受包含路径名称的字…

Java字符编码介绍

在计算机中&#xff0c;任何的文字都是以指定的编码方式存在的&#xff0c;在 Java 程序的开发中最常见的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 编码。 Java 中常见编码说明如下&#xff1a; ISO8859-1&#xff1a;属于单字节编码&#xff0c;最多只能表示 0~255 的字符范…

灰色预测法 —— python

目录 1.简介 2.算法详解 2.1 生成累加数据 2.2 累加后的数据表达式 2.3 求解2.2的未知参数 3.实例分析 3.1 导入数据 3.2 进行累加数据 3.3 求解系数 3.4 预测数据及对比 完整代码 1.简介 灰色系统理论认为对既含有已知信息又含有未知或非确定信息的系统进行预测&am…

python爬虫怎么爬小说_python爬虫爬取笔趣网小说网站过程图解

首先&#xff1a;文章用到的解析库介绍 BeautifulSoup&#xff1a; Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。 它是一个工具箱&#xff0c;通过解析文档为用户提供需要抓取的数据&#xff0c;因为简单&#xff0c;所以不需要多少代…

Java File类详解

在 Java 中&#xff0c;File 类是 java.io 包中唯一代表磁盘文件本身的对象&#xff0c;也就是说&#xff0c;如果希望在程序中操作文件和目录&#xff0c;则都可以通过 File 类来完成。File 类定义了一些方法来操作文件&#xff0c;如新建、删除、重命名文件和目录等。 File …

时间序列的预处理之纯随机性检验

目录 1.纯随机序列的定义 2.性质 3.纯随机性检验 1.纯随机序列的定义 纯随机序列也称为白噪声序列&#xff0c;满足如下性质&#xff1a;2.性质 纯随机性&#xff08;无记忆性&#xff09;方差齐性举例&#xff0c;随机生成1000个白噪声序列 用正态分布序列 rnorm(数量&am…