【发布时间】:2018-11-04 11:06:33
【问题描述】:
我有以下采用可选参数的方法:
public void error(Message msg, Object... msgParams) {
error(la.line, la.col, msg, msgParams);
throw new Errors.PanicMode();
}
.. 我想这样称呼它:
private void handleCheck(boolean found, Message msg, Kind... expected) {
if (!found) {
error(msg, expected);
}
}
问题:
这给了我以下警告:
输入方法 error(Errors.Message, 的最后一个参数的 Kind[] Object...) 与 vararg 参数类型不完全匹配。投射到 Object[] 确认非可变参数调用,或通过个人 用于可变参数调用的 Object 类型的参数。
它仍然可以正常工作,没有意外错误,但我很好奇是否有一种方法可以在不检查参数长度或类似内容的情况下在一行中调用这样的方法。
【问题讨论】: