gpt4 book ai didi

java - 条件运算符

转载 作者:行者123 更新时间:2023-12-01 17:33:22 25 4
gpt4 key购买 nike

这段代码有什么问题
if(getResponseDataMap().containsKey("A"){
a.setText(getResponseDataMap().get("A").toString);
}

这样转换。

getResponseDataMap().containsKey("A")?a.setText(getResponseDataMap().get("A").toString()):""

其中 getLocalRequestDataMap 是 HashMap 。而setText是android的函数

它给出编译时错误
该行有多个标记
- 类型不匹配:无法从 String 转换为 boolean 值
- 语法错误,请插入“)”来完成表达式
- 标记“)”存在语法错误,删除此标记

最佳答案

就其本身而言,问题在于您给出的表达式不是语句。

但是,如果有作业,那就没问题了:

import java.util.*;

public class Test {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();

String x = map.containsKey("A") ? "" : "";
}
}

我怀疑问题出在您未显示的某些代码中。请提供更多上下文 - 最好是像我这样的简短但完整的程序,但它演示了错误。

编辑:现在您已经编辑了问题,您可能会收到不同的错误。条件运算符不是有效的独立语句,并且每个操作数都需要是非空表达式(还有一些其他注意事项)。所以代替这个:

getResponseDataMap().containsKey("A") ?
a.setText(getResponseDataMap().get("A").toString()):""

怀疑你想要:

a.setText(getResponseDataMap().containsKey("A") ? 
getResponseDataMap().get("A").toString() : null);

但是,我个人会将其写为:

Object response = getResponseDataMap().get("A");
a.setText(response == null ? "" : response.toString());

另一方面,如果您想在 map 包含键时设置文本,那么您应该返回到原始的 if 语句,或者可能:

Object response = getResponseDataMap().get("A");
if (response != null) {
a.setText(response.toString());
}

关于java - 条件运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8768385/

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