java - 是否有一种可能在没有警告的情况下传递可选参数?
问题描述
我有以下采用可选参数的方法:
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, Object...) 的最后一个参数的类型 Kind[] 与可变参数类型不完全匹配。强制转换为 Object[] 以确认非可变参数调用,或传递 Object 类型的单个参数以进行可变参数调用。
它仍然在没有意外错误的情况下工作,但我很好奇是否有一种方法可以在不检查参数长度或类似内容的情况下在一行中调用这样的方法。
解决方案
它会在警告消息中告诉您要做什么:
转换为 Object[] 以确认非可变参数调用
所以:
error(msg, (Object[]) expected);
推荐阅读
- android - Fragments android studio中的后退按钮
- javascript - 使用预签名的 url + PUT 请求将文件上传到 Amazon S3,但在“StringToSign”中为“GET”收到错误“SignatureDoesNotMatch”
- python - 如何在具有闰年逻辑的单个数据框列中应用多个条件
- firebase - 如何查看版本中是否新出现非致命错误?
- node.js - 比较更新 Firestore 字段的方法
- html - 嵌套元素的 CSS flexbox 行为
- node.js - 为什么 Visual Studio 找不到 Visual Studio Installer 安装的 Node.js 运行时?
- javascript - 分页和计算搜索
- c# - FastObjectListview 和渲染器委托
- ubuntu - 为什么我在登录 apache 气流后出现错误?