在groovy文件中包含一个类

在groovy文件中包含一个类,groovy,Groovy,我尝试了包含一个类(从一个groovy文件到另一个groovy文件的剪切和粘贴) 我得到下面的错误 Groovy脚本中出现错误:启动失败,Script1.Groovy:101:此处不需要类定义。可能尝试使用内部类。不支持内部类,请尝试改用闭包 目标是将整个静态逻辑分开。您得到了一个看起来像内部类的类 class Maps 右边的方法 public static void populateInstance(List lookup_1, List lookup_2, List lookup

我尝试了包含一个类(从一个groovy文件到另一个groovy文件的剪切和粘贴)

我得到下面的错误

Groovy脚本中出现错误:启动失败,Script1.Groovy:101:此处不需要类定义。可能尝试使用内部类。不支持内部类,请尝试改用闭包


目标是将整个静态逻辑分开。

您得到了一个看起来像内部
类的类

    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()