【发布时间】:2019-02-27 18:40:24
【问题描述】:
代码:
String Foo[];
Foo={"foo","Foo"};
第 2 行错误:表达式开头非法
如果我说代码有效:
String Foo[]={"foo","Foo"};
为什么会发生这种情况,我应该如何在不产生错误的情况下执行所需的操作?其他数据类型也会发生这种情况。
如果您能用外行术语进行解释,将不胜感激。
【问题讨论】:
-
编译器希望你指定
{"foo", ...}是一个数组,所以使用new String[]{"foo", ...}。除此之外,帮自己一个忙,让变量名以小写字符开头,即String foo而不是String Foo(我个人喜欢在类型上声明数组,即String[] foo)。 -
Initialization和Assignment这两个词很重要。我相信。 :) -
仅供参考:或者,对于不可修改的列表而不是简单的数组,
List<String> list = List.of( "foo" , "bar" ) ;作为单行或两行。 -
通常你必须使用
new String[] { ...}(这在Java的早期版本中总是必须的),但是,作为语法糖,编译器在字段声明或变量声明中只接受{ ... }.为什么?在Java Language Specification 中指定了这种方式(可能是 messy 到处接受它)
标签: java arrays variable-assignment