在Groovy中,为什么以及如何将ArrayList分配给HashMap变量



我在Groovy中有以下代码,这些代码违背了我的逻辑:

HashMap<Integer,NLevelDynamicAlias> nLevelAliases = new ArrayList<>();

这实际上是一个拼写错误。但代码运行良好,直到我将代码复制到Java方法中,我才意识到这一点。

Groovy是如何实现这一点的?这是支持胁迫的一部分吗?

groovy"magic"(

试试这个代码:

HashMap<Integer,String> nLevelAliases = [1,2,3];

你会得到一个错误:

。。。由于:groovy.lang.GroovyRuntimeException:找不到匹配的构造函数:java.util.HashMap(java.lang.Integer,java.lang.Interger,java.lang.Integer(

意味着groovy试图为左侧的类型找到一个构造函数,该构造函数的参数在右侧的ArrayList中指定

最新更新