java - String [] 和 String... (Var-args) 在内部工作时是否相同?

标签 java arrays variadic-functions

class WrongOverloading{
    void something(String [] a){ .. }
    Integer something(String... aaa){ return 1;}
}

以上代码无法编译!编译器说这些是重复的方法。 那么使用 String 数组或 String var-args 的意思完全一样吗?

它们是如何在内部实现的?

最佳答案

它们实际上是相同的,除了编译器不会接受可变参数,除非它是最后一个参数,并且它不允许您将多个参数传递给数组。

public void methodA(int... ints, int a); // doesn't compile
public void methodA(int[] ints, int a); // compiles

public void methodB(int... ints); // compiles
public void methodC(int[] ints); // compiles

methodB(1); // compiles
methodB(1,2,3,4); // compiles
methodC(1); // doesn't compile
methodC(1,2,3,4); // doesn't compile

关于java - String [] 和 String... (Var-args) 在内部工作时是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754497/

相关文章:

c++ - 没有命名参数的变量参数列表?

java - 日历周日至周日

Java 字符串索引越界异常

c - 如何将数组传递给函数?指针?

Java:从另一个数组创建数组

c++ - 可变参数函数是否已弃用?

java - 用于具有子项目的项目的 Dropwizard + Gradle fatJar 引入 gradle-api-5.4.1.jar deps

java - Selenium Web 驱动程序中的选择器问题

java - 在java中将数组列表添加到二维数组列表

c - 使用 va_args 而不传递 num(如 printf)