在Java方法中区分多个参数和数组参数

时间:2012-08-01 10:50:18

标签: java arguments

我有一个接受多个参数的方法:void doodle(Object o, Object... objects)

有没有办法区分objects是真实数组还是只有多个参数构建的数组?

Java中不允许重载像void doodle(Object o, Object[] objects)这样的方法。

1 个答案:

答案 0 :(得分:3)

没有办法区分,因为没有真正的区别。

Object...只不过是语法糖,真正的方法签名有Object[],这就是为什么你不能超载它,它基本上是一样的

对于您的特定用例,您可以测试该方法是否具有varargs并相应地创建可视化,看看这是否有帮助:

http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html#isVarArgs%28%29