《Thinking in Java》第105页有一句话不理解
如何理解你应该总是只在重载方法的一个版本上使用可变参数列表,或者压根就不是用它
就是当重载一个方法时,选择其中的一个重载使用可变参数,其他的避免使用,否则编译的时候容易出问题。具体的参看http://www.cnblogs.com/lanxuezaipiao/p/3190673.html
两个f()应该只用一个或不用 我是这么理解的
可变参数的第一个参数类型不同,而且要放在第二个参数上,你把可变参数理解成数组
就是根据参数判断调用那个方法
这个道理很简单,比如说你有
foo(int x, int ... args)
和
foo(int x, int y, int ... args)
两个重载形式
那么
foo(1,2,3)到底调用哪一个呢?
如果你有很多重载形式,那么你自己会被自己搞晕了。所以,你应该尽量确保你可变参数的重载形式和别的重载不存在二义性。