在groovy文件中包含一个类
我尝试了包含一个类(从一个groovy文件到另一个groovy文件的剪切和粘贴) 我得到下面的错误 Groovy脚本中出现错误:启动失败,Script1.Groovy:101:此处不需要类定义。可能尝试使用内部类。不支持内部类,请尝试改用闭包在groovy文件中包含一个类,groovy,Groovy,我尝试了包含一个类(从一个groovy文件到另一个groovy文件的剪切和粘贴) 我得到下面的错误 Groovy脚本中出现错误:启动失败,Script1.Groovy:101:此处不需要类定义。可能尝试使用内部类。不支持内部类,请尝试改用闭包 目标是将整个静态逻辑分开。您得到了一个看起来像内部类的类 class Maps 右边的方法 public static void populateInstance(List lookup_1, List lookup_2, List lookup
目标是将整个静态逻辑分开。您得到了一个看起来像内部
类的类
class Maps
右边的方法
public static void populateInstance(List lookup_1, List lookup_2, List lookup_3, List lookup_4,
List lookup_5, List lookup_6, List lookup_7){
此外,由于这是Groovy,所以不需要声明所有这些getter
及
不需要,因为你已经在那个包里了。也
import java.util.ArrayList
import java.util.HashMap;
import java.util.List
可以在Groovy默认导入它们时删除
在populateInstance
方法中,您可以更改所有这些:
tariffAllowance = new ArrayList();
lookup_1.each { offer ->
tariffAllowance.add(offer)
}
fmb = new ArrayList();
lookup_2.each { offer ->
fmb.add(offer)
}
区块至:
tariffAllowance = lookup_1.collect()
fmb = lookup_2.collect()
您似乎还在创建一个可以通过调用populateInstance
更改其所有数据的单例。在多线程环境中,这种错误的可能性是巨大的(实际上这是一个巨大的全局变量)如果您在第101行显示代码,甚至只是其中的一部分,我们可能会发现错误。是的,Tim,我需要这是一个单例。按照要求故意这样做。非常感谢您的回答…您一直是明星…ChearesLookup_1.collect不起作用,org.codehaus.groovy.runtime.metaclass.MethodSelectionException:无法从该列表中找到要调用的collect()方法:public java.util.Collection java.util.Collection#collect(java.util.Collection,groovy.lang.Close)public java.util.List java.util.Collection#collect(groovy.lang.Closure)真的是groovy的旧版本吗collect()
从1.8.5开始就是groovy的一部分。是的,它是1.5.6,我只是将groovy用作Think Analytics代码的一部分……谢谢你,这有点旧;-)你可以做:lookup\u 1.collect{it}
tariffAllowance = lookup_1.collect()
fmb = lookup_2.collect()