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)
您将类型参数放在错误的位置.它有之间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)