为什么明确的类型参数应该被钻石取代?

Dan*_*iel 31 java android diamond-operator android-studio

我正在使用Android Studio,我写这个:

List<Button> buttons = new ArrayList<Button>();
Run Code Online (Sandbox Code Playgroud)

我有这样的信息:

显式类型参数Button应替换为<>

我好奇,为什么用钻石代替呢?

List<Button> buttons = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

编辑:
我完全不同意副本!之前我看到了那个答案,它将显式参数与无参数进行比较,而我将显式参数与隐式参数进行比较!

Sle*_*idi 38

它不那么冗长,请考虑以下几点

Map<String,List<String>> map = new HashMap<String,List<String>>();
Run Code Online (Sandbox Code Playgroud)

VS

Map<String,List<String>> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

我想你会选择第二种选择

  • 除了"美丽"之外,没有任何区别吗?我会去的! (10认同)
  • @DanChaltiel 我想您也可以争辩说以后更改更容易,因为您需要对显式版本的每次使用执行更改。我的意思是例如从`String` 更改为`Integer`。 (2认同)