ChatGPT还是有点东西的-public static <T> List<T> Arrays.asList(T... a) {...}
背景
业务开发需要判断业务状态是否在30、40、50、60的集合内,所以写了以下代码
int[] inLiq = {30,40,50,60};
return Arrays.asList(inLiq).contains(o.getOrderStatus());
自我Review代码时,验证了下这行代码,发现状态为30时,仍然返回false。
在自我怀疑中调整代码,并验证,代码如下:
Integer[] integerArray = {30, 40, 50,60};
List<Integer> integerList = Arrays.asList(integerArray);
System.out.println(integerList.contains(30)); // true
System.out.println(integerList.contains(Integer.valueOf(30))); // true
System.out.println(integerList.contains(Integer.valueOf(30).intValue())); // true
int[] intArray = {30, 40, 50,60};
List<int[]> intList = Arrays.asList(intArray);
System.out.println(intList.contains(30)); // false
System.out.println(intList.contains(Integer.valueOf(30))); // false
System.out.println(intList.contains(Integer.valueOf(30).intValue())); // false
没想很明白,于是问了下ChatGPT。
ChatGPT的回答
Arrays.asList() 方法返回的结果类型取决于传入的参数类型。让我们来看一下这两个情况。
在第一种情况下,integerArray 是一个包装类型(Integer)的数组。当你将它作为参数传递给 Arrays.asList() 方法时,它会将数组的元素视为独立的对象,并返回一个泛型为 Integer 的 List。也就是说,它会将数组中的每个元素转换为相应的 Integer 对象,并将这些对象放入列表中。
Integer[] integerArray = {30, 40, 50, 60};
List<Integer> integerList = Arrays.asList(integerArray);
在这种情况下,integerList 是一个泛型为 Integer 的列表,可以通过索引访问、迭代等操作。
而在第二种情况下,intArray 是一个基本类型(int)的数组。当你将它作为参数传递给 Arrays.asList() 方法时,由于基本类型不能作为泛型参数,它会将整个数组作为单个元素放入列表中。也就是说,返回的是一个 List<int[]>,其中的元素类型是 int[]。
int[] intArray = {30, 40, 50, 60};
List<int[]> intList = Arrays.asList(intArray);
在这种情况下,intList 是一个泛型为 int[] 的列表,它包含了一个元素,即原始的 int 数组。因此,你无法通过索引访问数组的元素,而只能通过 intList.get(0) 访问整个数组。
总结来说,Arrays.asList() 方法根据传入的参数类型决定返回的结果类型,基本类型数组会被视为单个元素放入列表中,而包装类型数组会将每个元素都作为独立对象放入列表中。
ChatGPT还是有点东西的-public static <T> List<T> Arrays.asList(T... a) {...}的更多相关文章
- 为什么接口要规定成员变量必须是public static final的呢?(转)
在interface里面的变量默认都是public static final 的.所以可以直接省略修饰符: String param="ssm"://变量需要初始化 为什么接口要规 ...
- 接口中定义变量必须为public static final的原因
在interface里面的变量默认都是public static final 的,原因如下: 1. 接口是一种高度抽象的"模版",,而接口中的属性也就是’模版’的成员,就应当是 ...
- 突然的明白--public static 类名 函数名()
public static ImageUtilEngine getImageEngine() { return imageEngine; } 这个是什么啊........纠结了一个多星期的东西 忽然间 ...
- public static void Invoke (Action action)
using System; using System.Security.Principal; using System.Security.Permissions; namespace Demo { c ...
- Spring MVC exception - Invoking request method resulted in exception : public static native long java.lang.System.currentTimeMillis()
最近在线上系统发现下面的异常信息: 2014-10-11 11:14:09 ERROR [org.springframework.web.servlet.mvc.annotation.Annotati ...
- public static void main(String[] args){}函数理解
主函数的一般写法如下: public static void main(String[] args){…} 下面分别解释这些关键字的作用: (1)public关键字,这个好理解,声明主函数为publi ...
- public static void main(String[] args){}函数诠释
public static void main(String[] args){}函数诠释 主函数的一般写法如下: public static void main(String[] args){-} 下 ...
- static public和 public static 区别
static:加static 的是静态成员,不能实例化在你运行的时候他自己在内存中开辟了块空间,不用在new, 有点像全局变量,如果不用你必须去 实例化(new)才能用 static是静态的意思,pu ...
- 浅析 public static void main(String[] args)
最初接触Java程序的时候,老师就教导我们要从下面这句开始学起,据说是约定俗成的,所以直到今天,还是只知道java程序应该这么写,具体为什么这么写,鄙人惭愧. public class ClassNa ...
- public static <T> Map<String, T> json2map
/** * json string convert to map with javaBean */ public static <T> Map<String, T> json2 ...
随机推荐
- 深入理解DES算法:原理、实现与应用
title: 深入理解DES算法:原理.实现与应用 date: 2024/4/14 21:30:21 updated: 2024/4/14 21:30:21 tags: DES加密 对称加密 分组密码 ...
- 英语 one day
前言 I do not know if it work,but just go. 内容 1.quote vt:摘要,引用 n:引语 He quote a passage from the presid ...
- @EnableDiscoveryClient 注解如何实现服务注册与发现
@EnableDiscoveryClient 是如何实现服务注册的?我们首先需要了解 Spring-Cloud-Commons 这个模块,Spring-Cloud-Commons 是 Spring-C ...
- Hadoop HDFS 3.2的部署
之前写过HDFS 2.6的部署,最近项目中尝试使用最新的HDFS 3.2.1做离线存储,部署方式略有不同,所以这里再简单写一下,这里只涉及到存储因此不再配置yarn,只配置HDFS最基本的服务Name ...
- Linux基础-01:Linux命令的基本格式
2.1.1 命令提示符 在CentOS 7操作系统中,Linux命令提示符就像是你与电脑交流的一个小标志,告诉你系统已经准备好接受你的指令了. 它通常会显示在你打开的终端窗口或控制台的最前面. 让我们 ...
- 02_Vue模板语法
Vue模板语法有2大类: 1.插值语法: 功能:用于解析标签体内容. 写法:{{xxx}},xxx是js的表达式,且可以直接读取到data中的所 ...
- 力扣423(java)-从英文中重建数字(中等)
题目: 给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9).按 升序 返回原始的数字. 示例 1: 输入:s = "owoztneoer"输出:&quo ...
- 科普达人丨一图看懂块存储&云盘
简介: 建议收藏 原文链接:https://click.aliyun.com/m/1000363155/ 本文为阿里云原创内容,未经允许不得转载.
- 大数据时代下,App数据隐私安全你真的了解么?
简介:你是否有过这样的经历:你和朋友聊天表达你近期想要购买某件商品,第二天当你打开某购物软件时,平台向你推送的商品正是你想要购买的:或者,你是否接到过陌生来电,他们准确的报出了你的名字和年龄.... ...
- dotnet 6 使用 File.Exists 判断管道是否存在将让下次连接失败
我尝试在 dotnet 6 使用 File.Exists 判断管道是否存在,如果管道存在再进行连接.然而这个逻辑将会接下来的 NamedPipeClientStream 调用 Connect 连接失败 ...