我有一个接受多个参数的方法:void doodle(Object o, Object... objects)
。
有什么方法可以区分 objects
是一个真正的数组还是由多个参数构建的数组?
在 Java 中不允许重载像 void doodle(Object o, Object[] objects)
这样的方法。
最佳答案
没有办法区分,因为没有真正的区别。
Object...
只不过是语法糖,在幕后,真正的 方法签名有 Object[]
,这就是为什么你不能重载它,它基本上是一样的。
对于您的特定用例,您可以测试该方法是否具有可变参数并相应地创建可视化,看看这是否有帮助:
http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html#isVarArgs%28%29
关于java - 区分Java方法中的多个参数和数组参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757653/