java - 传递一个字符串数组作为参数

标签 java arrays string

可以通过以下方式声明和初始化字符串数组:

String[] str = {"A", "B"};

但是对于接受字符串数组作为参数的方法,为什么不能在那里使用相同的方法呢?

例如:如果在下面的代码中,我将对 show() 的调用从 show(str); 替换为 show({"A""B"});,它显示编译器错误。为什么?

public class StringArray {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String[] str = {"A", "B"};
        show(str);
    }
    static void show(String[] s) {
        System.out.println(s[0] + s[1]);
    }
}

显示的编译器错误是:

StringArray.java:9: illegal start of expression
                show({"A", "B"});
                     ^
StringArray.java:9: ';' expected
                show({"A", "B"});
                      ^
StringArray.java:9: illegal start of expression
                show({"A", "B"});
                         ^
StringArray.java:9: ';' expected
                show({"A", "B"});
                          ^
StringArray.java:9: illegal start of type
                show({"A", "B"});
                               ^
StringArray.java:11: class, interface, or enum expected
        static void show(String[] s) {
               ^
StringArray.java:13: class, interface, or enum expected
        }
        ^
7 errors

也允许使用 show(new String[] {"A", "B"});new String[]{"A", "B"} 在作为方法参数传递时与 {"A", "B"} 有何不同? 提前致谢!

最佳答案

语法{"A", "B"}(前面没有new String[])只能用作数组初始化表达式。在所有其他上下文中(包括方法调用),您需要使用 new 运算符。

参见 Java Tutorial on Arrays了解更多信息。

关于java - 传递一个字符串数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535017/

相关文章:

java - 字段未出现在 Firebase Android Studio 的数据库中

java - Lucene评分函数

c# - System.Array 的 SetValue/GetValue 方法是线程安全的吗?

c - 整数数组的深拷贝,仅使用指针算法

java - 在 Spring Data Jpa Repository 而不是实体中设置表名称

java - 如果使用导入而不是相同的包会发生变化

arrays - 将数组作为 Fortran 中的函数参数传递给 lua

regex - Powershell的正则表达式为connectionStrings?

php - 用 JavaScript 实现 PHP 字符串异或

c - 在 C 中定义长度前缀 const 宽字符串