Emi*_*mil 7 java overloading variadic-functions
public static void main(String[] args) {
System.out.println(fun(2,3,4));
}
static int fun(int a,int b,int c)
{
return 1;
}
static int fun(int ... a)
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出: 1
问题: 在上面的例子中,为什么功能乐趣选择第一个功能而不是第二个功能.选择的基础是什么,因为无法确定用户实际想要调用的乐趣?
基本上是对特定电话的偏好.除此之外,这意味着可以优化少量参数,避免在执行时无意义地创建数组.
JLS没有说清楚这一点,但是在第15.12.2.5节中,如果某些条件成立,那么谈论固定arity方法的部分比另一种方法更具体 - 在这种情况下它们也是如此.基本上它是一个更具体的,因为有更多的调用,将是有效的可变参数的方法,就像有相同数量的参数,但参数类型本身也比较一般.
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |