关于阵列初始化

时间:2015-04-02 06:17:50

标签: java arrays

有人可以解释为什么我不能使用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

2 个答案:

答案 0 :(得分:4)

是的,如果使用{..}初始化数组,声明初始化应该同时完成。

好吧,将array标记为final会使事情变得复杂..以后您将无法初始化它(您必须在构造函数中执行此操作)。您的代码将无法编译。

是的,您可以在构造函数中使用:arr = new String[5];来初始化数组。

答案 1 :(得分:2)

你应该初始化数组,如下所示:

array = new String[] {a,b};