2 h meichuan h_meichuan 于 2016.03.20 12:24 提问

[Java]关于重载方法中的可变参数列表

《Thinking in Java》第105页有一句话不理解

图片说明

如何理解你应该总是只在重载方法的一个版本上使用可变参数列表,或者压根就不是用它

5个回答

luochoudan
luochoudan   Ds   Rxr 2016.03.20 17:35
已采纳

就是当重载一个方法时,选择其中的一个重载使用可变参数,其他的避免使用,否则编译的时候容易出问题。具体的参看http://www.cnblogs.com/lanxuezaipiao/p/3190673.html

h_meichuan
h_meichuan 推荐的博文很好,谢谢
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.03.20 21:58

这个道理很简单,比如说你有
foo(int x, int ... args)

foo(int x, int y, int ... args)
两个重载形式
那么
foo(1,2,3)到底调用哪一个呢?
如果你有很多重载形式,那么你自己会被自己搞晕了。所以,你应该尽量确保你可变参数的重载形式和别的重载不存在二义性。

u014229472
u014229472   2016.03.20 12:34

两个f()应该只用一个或不用 我是这么理解的

h_meichuan
h_meichuan 但是下面那个说可以编译成功的不是两个f()都用了可变参数列表吗
一年多之前 回复
weixin_32769751
weixin_32769751   2016.03.20 13:33

可变参数的第一个参数类型不同,而且要放在第二个参数上,你把可变参数理解成数组

enpterexpress
enpterexpress   2016.03.20 21:55

就是根据参数判断调用那个方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!