【发布时间】:2015-06-29 19:13:47
【问题描述】:
当我运行这段代码时:
class Test {
public static void main(String[] args) throws Exception {
someMethod(new int[] {1, 2, 3});
}
static void someMethod(Object obj) {
System.out.println("Single object given: " + obj);
}
static void someMethod(Object[] objs) {
System.out.println("Multiple objects given: " + Arrays.toString(objs));
}
}
我得到输出,其中someMethod(Object[] objs) 被选择为int[]:
Single object given: [I@140e19d
当我试图记录一些这样的消息时,我遇到了这样的行为:
logger.log(Level.INFO, "param1: {0}, param2: {1}", new int[] {1, 2});
哪个输出:
...
INFO: param1: [I@103dbd3, param2: {1}
那么为什么选择 Object 而不是 Object[] 作为原始数组的方法参数呢?
【问题讨论】:
-
int[]不是Object[]。
标签: java arrays overloading primitive