gpt4 book ai didi

java - 使用 Arrays.asList 检查指定枚举值列表中是否有 int

转载 作者:行者123 更新时间:2023-11-30 09:00:20 25 4
gpt4 key购买 nike

我被告知不要执行以下代码并使用 && 条件进行检查以确保 resultCode 不是以下代码之一。但我不明白为什么这是行不通的。似乎应该如此。 HttpStatus 返回一个 int。 resp.getResultCode() 返回一个 Long

if(!Arrays.asList(HttpStatus.NO_CONTENT.value(), HttpStatus.GONE.value(), HttpStatus.OK.value())
.contains(resp.getResultCode())){
// Do things
}

以上有什么问题吗?提前致谢。

最佳答案

如您所说,getResultCode 返回一个 LongHttpStatus.value() 返回一个 int,当您将它放入 列表

java.lang.Integer 永远不会等于 java.lang.Long,所以您的 if 语句总是返回 false .

这与@RichardSchwartz 提到的效率原因不同——我认为完全不工作胜过效率。

要使其正常工作,您应该:

  1. 如果 getResultCode 返回一个 long(小写),您应该首先将它转换为一个 int:.contains((int)resp.getResultCode( )))
  2. 如果它返回一个 Long,你应该将它转换成一个 int 这样:.contains(resp.getResultCode().intValue()))

这是java.lang.Integer.equals的源代码:

        public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}

关于java - 使用 Arrays.asList 检查指定枚举值列表中是否有 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com