gpt4 book ai didi

java - java中的可变参数

转载 作者:搜寻专家 更新时间:2023-10-31 20:05:19 26 4
gpt4 key购买 nike

public class Demo {
public static String doit(int x,int y)
{
return"a";
}
public static String doit(int ...val)
{
return "b";
}
public static void main(String args[])
{
System.out.println(doit(4,5));
}
}

我怀疑为什么编译器没有显示任何错误,因为 doit(4,5) 导致歧义

当我运行代码时,我得到的输出是广告而不是 b 为什么?

最佳答案

Java 语言规范定义应调用第一个方法(“a”)(而不是“b”)。

参见 http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.12.2

为了保持与以前的 Java 版本(在引入可变参数之前)的向后兼容性,编译器将始终选择具有确切参数数量的方法,即使可变参数方法也存在。

至于你是否收到警告,编译器可以自由添加额外的警告,并且可能会有一些警告这种情况,我猜你的没有(至少没有你的设置)

关于java - java中的可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9581711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com