请考虑以下代码:
void someMethod(Object... varargParam){
if(someCondition){
doSomethingWith(varargParam);
}
}
如果someCondition
解析为false
,则varargParam
未使用。 Object array
是否仍然会被创建,或者这个创作是否被张贴到第一次使用?
答案 0 :(得分:0)
varargParam
,如果在方法本身没有使用的话,也会创建。{/ p>
来自JLS 15.14.2:
如果被调用的方法是变量arity方法m,则它必然具有n> 0形式参数。对于某些T,m的最终形式参数必然具有类型T [],并且必须使用k≥0实际参数表达式调用m。