如果我尝试重载类 Varargdemo
中的方法 flexiPrint()
,则会生成编译时错误。编译器同等对待以下签名:
public static void flexiPrint(Object... data){}
public static void flexiPrint(Object[] data){}
有人可以向我解释为什么他们受到同样的待遇吗?我一直没能找到答案。
最佳答案
Object...
只不过是一个数组,这意味着与定义 Object[]
...
(三个点)代表varargs在java中。
我们通常在 main 方法中看到这个签名,例如 main(String... args)
因此,一个类中不允许有多个具有相同签名的方法(编译时错误)。这就是您看到编译时错误的原因。
关于java - 使用对象类的参数 vararg 和对象类的数组重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375823/