如何初始化静态数组?

Jer*_* S. 68 java arrays static playing-cards

我已经看到了在Java中定义静态数组的不同方法.或者:

String[] suit = new String[] {
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
};
Run Code Online (Sandbox Code Playgroud)

......或仅

String[] suit = {
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
};
Run Code Online (Sandbox Code Playgroud)

或者作为一个 List

List suit = Arrays.asList(
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
);
Run Code Online (Sandbox Code Playgroud)

是否存在差异(当然,列表定义除外)?

什么是更好的方式(表现明智)?

dog*_*ane 107

如果您正在创建一个数组,那么没有区别,但是,以下是整洁的:

String[] suit = {
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
};
Run Code Online (Sandbox Code Playgroud)

但是,如果你想将一个数组传递给一个方法,你必须像这样调用它:

myMethod(new String[] {"spades", "hearts"});

myMethod({"spades", "hearts"}); //won't compile!
Run Code Online (Sandbox Code Playgroud)


Boz*_*zho 9

不,没有区别.这只是语法糖.Arrays.asList(..)创建一个额外的列表.