有人可以告诉我为什么对三元运算符的使用不正确吗?操作数2和3返回布尔值。
public class Something { ... private static final double REFERENCE_FRAME_MID_X = 0; private static final double REFERENCE_FRAME_MID_Y = 0; private boolean findInsideOrOutsideGeneralEllipse(Point2D destCirclePos) { List<Boolean> returnValue = new ArrayList<>(); Point2D referenceFrameCenter = new Point2D.Double(REFERENCE_FRAME_MID_X, REFERENCE_FRAME_MID_Y); Ellipse2D insideAreaEllipse2D = getEllipse2D(referenceFrameCenter.getX(), referenceFrameCenter.getY(), destCirclePos.distance(referenceFrameCenter)); // doesn't work insideAreaEllipse2D.contains(destCirclePos) ? returnValue.add(true) : returnValue.add(false); // works if (insideAreaEllipse2D.contains(destCirclePos)) { returnValue.add(true); } else { returnValue.add(false); } } ... }
Java三元运算条件的用法应如下所示
result = testCondition ? value1 : value2
这是Java语言规范。
相等,关系和条件运算符
在下面的示例中,该运算符应读取为:“如果 someCondition 为 true ,则将 value1 的值分配给result。否则,将 value2 的值分配给result