gpt4 book ai didi

Java:HashMap containskey 返回值错误

转载 作者:行者123 更新时间:2023-12-01 07:47:43 26 4
gpt4 key购买 nike

我在使用 Eclipse 4.7.2 的 HashMap 中发现了一个奇怪的行为。

以下行对我来说似乎是正确的:

infos.containsKey("desc") ? stmt.setString(8, infos.get("desc")) : 
stmt.setString(8, "No description");

infos类型为HashMap<String, String>和一个 PreparedStatement应填写 map 中描述 ( desc ) 字段的值。

但是 Eclipse 并没有只执行其中所写的内容,而是指示该行中有多个错误:

 infos.containsKey**("desc")** ? stmt.setString(8, infos.get("desc")) :
stmt.setString(8, "No description"**)**;

我在Eclipse中标记了带下划线的字符。

错误信息是:

Multiple markers at this line
- Syntax error on token ")", delete this token
- Syntax error, insert ")" to complete Expression
- Type mismatch: cannot convert from String to
boolean

的功能?操作者相当清晰,但行为却不清楚。

有谁可以告诉我哪里错了或者如何避免这个错误。

谢谢!

最佳答案

问题是条件运算符 boolean 吗? value1 : value2 需要值,但 stmt.setString返回void,表示缺少任何值。

更简单的解决方案是使用 Map#getOrDefault(key, defaultValue) Java 8 中提供类似

stmt.setString(8, infos.getOrDefault("desc", "No description"));

关于Java:HashMap containskey 返回值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48228774/

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