这是我的示例代码,我收到警告.
String lsSQL = foMetaQuery.getSQL();
String lsNewSQL = replace(lsSQL,"'' {","''{");
lsNewSQL = replace(lsNewSQL," } ''","}''");
lsNewSQL = replace(lsNewSQL," }","}");
lsNewSQL = MessageFormat.format(lsNewSQL,foSubstitutionArray);
loVSQueryDef.setSQL(lsNewSQL);
Run Code Online (Sandbox Code Playgroud)
编译说
转换为java.lang.Object以进行varargs调用强制转换为java.lang.Object []以进行非varargs调用并禁止此警告
Run Code Online (Sandbox Code Playgroud)lsNewSQL = MessageFormat.format(lsNewSQL,foSubstitutionArray);
Zas*_*tai 12
你没有显示什么类型foSubstitutionArray,但我认为它是一个除Object以外的类型的数组.
现在,MessageFormat.Format()是一个varargs方法,这意味着你可以传递任意数量的参数(嗯,至少1),Java将在内部将它们全部收集在一个对象数组中.但是,在这里你传入一个数组,所以Java感到困惑:你是试图传递一个参数(恰好是一个数组),还是你传入变量参数?
如果您打算传递一个参数(不太可能),请向Object添加一个强制转换:
MessageFormat.format(lsNewSql, (Object) foSubstitutionArray)
Run Code Online (Sandbox Code Playgroud)
如果您打算从数组中取值,则转换为Object []:
MessageFormat.format(lsNewSql, (Object[]) foSubstitutionArray)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9136 次 |
| 最近记录: |