Java程序运行正常但不编译

use*_*883 4 java collections compiler-errors hashmap

我有一个正常运行的java程序.

但是,当我尝试在Netbeans中清理并构建它时,它正在窒息:

 protected HashMap<String, ArrayList<HashMap<String,String>>> config1

 config1 = new <String,ArrayList<HashMap<String,String>>> HashMap(); // build breaks here.
Run Code Online (Sandbox Code Playgroud)

错误是:

  cannot find symbol  
  symbol  : constructor     
  <java.lang.String,java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.String>>
  >HashMap()
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 5

您将类型参数放在错误的位置.它有之间HashMap(): -

config1 = new HashMap<String,ArrayList<HashMap<String,String>>>();
Run Code Online (Sandbox Code Playgroud)

此外,最好在声明中使用更多的通用类型而不是特定类型,甚至包括generic type parameters.所以你应该使用Map而不是HashMap在声明中,而List不是ArrayList在你的type parameter: -

实际上,您不需要在两行中破坏声明和初始化.只需将它们放在一行中即可.它看起来更清洁.所以,你可以改变你的两行: -

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