三元对比如果在Java中
发布时间:2020-12-15 04:27:43 所属栏目:Java 来源:网络整理
导读:为什么使用这样的三元组是不正确的,因为使用if是正确的? //Error when using as ternaryCharacter.isDigit(myDto.getNameStr().charAt(0)) ? digitArrayList.add(myDto) : charArrayList.add(myDto);//OK when used as if ... elsechar c = myDto.getNameSt
为什么使用这样的三元组是不正确的,因为使用if是正确的?
//Error when using as ternary Character.isDigit(myDto.getNameStr().charAt(0)) ? digitArrayList.add(myDto) : charArrayList.add(myDto); //OK when used as if ... else char c = myDto.getNameStr().charAt(0); if(Character.isDigit(c)) { digitArrayList.add(myDto); } else { charArrayList.add(myDto); } 解决方法
三元条件不允许作为独立语句.只允许某些表达式作为独立语句,如赋值或方法调用.
JLS将允许作为独立语句的表达式分类为
无论如何,有几种不明确的方法可以在这里使用三元组: // statement is an assignment boolean ignored = Character.isDigit(...) ? digitArrayList.add(myDto) : charArrayList.add(myDto); // statement is a method invocation (Character.isDigit(...) ? digitArrayList : charArrayList) .add(myDto); 但我不建议使用它们,它们只是一种好奇心.更简单的是使用if … else. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |