gpt4 book ai didi

java - Java 中的 String[] 和 String... 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 20:27:15 24 4
gpt4 key购买 nike

我应该如何在 Java 中声明 main() 方法?

像这样:

public static void main(String[] args)
{
System.out.println("foo");
}

或者像这样:

public static void main(String... args)
{
System.out.println("bar");
}

String[]String... 有什么区别?

最佳答案

How should I declare main() method in Java?

String[]String... 在内部是相同的,即。例如,一个字符串数组。不同之处在于,当您使用可变参数 (String...) 时,您可以调用如下方法:

public void myMethod( String... foo ) {
// do something
// foo is an array (String[]) internally
System.out.println( foo[0] );
}

myMethod( "a", "b", "c" );

// OR
myMethod( new String[]{ "a", "b", "c" } );

// OR without passing any args
myMethod();

当您将参数声明为字符串数组时,您必须这样调用:

public void myMethod( String[] foo ) {
// do something
System.out.println( foo[0] );
}

// compilation error!!!
myMethod( "a", "b", "c" );

// compilation error too!!!
myMethod();

// now, just this works
myMethod( new String[]{ "a", "b", "c" } );

What's actually the difference between String[] and String... if any?

约定是使用 String[] 作为主要方法参数,但使用 String... 也可以,因为当您使用可变参数时,您可以调用该方法以同样的方式调用带有数组作为参数的方法,并且参数本身将是方法体内的数组。

有一点很重要,当你使用可变参数时,它必须是方法的最后一个参数,并且你只能有一个可变参数。

您可以在此处阅读有关可变参数的更多信息:http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html

关于java - Java 中的 String[] 和 String... 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973505/

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