这让我感到困惑,我想要一个解释。可变参数返回对象或数组中的三元运算符无效
public foo(EventPoint... eventPoints) {
//...
}
boolean isThisHappening;
foo(isThisHappening ? new EventPoint() : new EventPoint[]{});
即使foo(new EventPoint());
是有效的,foo(new EventPoint[]{});
也是有效的。这是三元操作员由于类型评估而失败吗?
使用JDK 1.7.0 得到的错误:
要求:的eventPoint [] 发现:对象 原因:参数类型对象不符合的eventPoint
错误信息是什么? – aioobe
我在找到java.lang.Object原因参数类型不符合vararg元素类型。更具体地说,它们不是引起问题的Object类型。 – initialZero
发布完整的示例并提供'javac'版本。 'Object'和'Object []'*都是*'Object's,所以听起来很奇怪。 – aioobe