java布尔三目运算符_Java三元运算符(?:)不起作用;第二个或第三个操作数返回布尔值...

Can someone tell me why this use of the ternary operator is incorrect? Operands 2 and 3 return a boolean.

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 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);

}

}

...

}

解决方案

Usage of Java ternary operation condition should looks like

result = testCondition ? value1 : value2

it's java-language specification.

In the following example,

this operator should be read as: "If someCondition is true, assign the

value of value1 to result. Otherwise, assign the value of value2 to

result

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值