Java:如果是stmt,则使用单行的三元运算符

时间:2017-11-14 19:29:07

标签: java

你能帮我写一些高效的Java代码吗?

逻辑是: 我必须读取文件中的第一个有效记录并生成文件名。无效/有效记录由该行的前2个字符标识。无效记录前2个字符填充在名为ignoreTrans的ArrayList中(作为参数传递)。

有两种情况: - 场景1:在这种情况下,文件中的所有记录都是有效的,ignoreTrans将为空 场景2:文件具有无效记录,其中从传递的参数填充ignoreTrans。

我想编写如下的三元运算符:

FileName = ignoreTrans.isEmpty() ? getFileName(pos) : (if (!ignoreTrans.contains(line.substring(0,2))) getFieldName(pos));

此声明有误。你能否建议如何使用if的三元组。

谢谢,

1 个答案:

答案 0 :(得分:2)

尝试

FileName = ignoreTrans.isEmpty() ? getFileName(pos) : !ignoreTrans.contains(line.substring(0,2))) ? getFieldName(pos) : "";

就像你可以拥有一个嵌套的if结构一样,你也可以嵌套三元运算符。