gpt4 book ai didi

java - 静态数组初始化中的三元运算符未按预期工作

转载 作者:行者123 更新时间:2023-11-29 04:25:23 25 4
gpt4 key购买 nike

我正在考虑以这种方式使用三元运算符在 Java 中动态初始化数组:

boolean errorMsg = true;
...
String[] elements = new String[] {
errorMsg ? "single_element" : "1st_element", "2nd_element"
};

我只想在 errorMsgtrue 时用 1 个元素初始化数组,或者在 errorMsg 为 false 时用 2 个元素初始化数组。无论 errorMsgtrue 还是 false,它总是用后两个元素初始化 String[]。为什么会这样?

最佳答案

Why does this happen?

因为 errorMsg ? “single_element”:“1st_element” 解析为一个字符串,并且您已经有了另一个字符串 “2nd_element”

你需要一个 if else 来代替数组本身的初始化而不是里面的元素。

String[] elements = errorMsg? new String[] {  "single_element" } : new String[] { "1st_element", "2nd_element" };

但是为了让我的初级开发人员开心,我更愿意写

        String[] elements = null;
if (errorMsg) {
elements = new String[] { "single_element" };
} else {
elements = new String[] { "1st_element", "2nd_element" };
}

关于java - 静态数组初始化中的三元运算符未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46607768/

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