有人可以解释为什么我不能使用array={a,b};
:
public class Example {
private final String a;
private final String b;
public final String[] array;
public Example(){
a="test";
b="text";
//String [] c = {a,b}; This is fine
//array=c;
array={a,b}; // this line throws an Exception
}
}
例外:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - illegal start of expression
at Example.<init>(Example.java:21)
at hello.main(hello.java:26)
Java Result: 1
答案 0 :(得分:4)
是的,如果使用{..}
初始化数组,声明和初始化应该同时完成。
好吧,将array
标记为final
会使事情变得复杂..以后您将无法初始化它(您必须在构造函数中执行此操作)。您的代码将无法编译。
是的,您可以在构造函数中使用:arr = new String[5];
来初始化数组。
答案 1 :(得分:2)
你应该初始化数组,如下所示:
array = new String[] {a,b};