我在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中指定