我正在为SCJP考试做准备,在学习扩展部分时,考虑到在重载方面扩展胜过Boxing和Var-args,但没有明确的解释。尝试搜索,但没有得到更好的答案。
我得到的一个答案是因为编译器在选择较新的样式之前先选择了较旧的样式。但是我不相信。
编辑:我知道加宽比拳击和var-args更可取。但是为什么是我的问题。其中我知道一个。任何其他原因。
最佳答案
是的,由于兼容性要求,编译器“选择较旧的样式而不是较新的样式”。想象一下在Java 5发行之前编写的一些代码,当在Java 5下编译时,其行为突然发生了变化!那将是不好的。
自Java诞生以来,转换就已经出现了,但是自动装箱和varargs是Java 5的新功能。