未知类型:Groovy Trait的METHOD_DEF

时间:2015-04-08 14:44:11

标签: groovy

我有以下特点:

trait DataSource{
    private File handle
    private List data

    def readFile(String target){
        try{
            handle = new File(target)
            data = handle.readLines()
        }catch(FileNotFoundException fnf){
            return false;
        }

    }

    def printLines(){
        for(int i = 0; i < data.size(); i++){
            println(data.get(i));
       }
    }

    def getData(){
         if(data != null){
             return data
         }else{
             return false;
         }
    }

    def getHandle(){
        if(handle != null){
            return handle
        }else{
            return false
        }
    }
}

每当我尝试编译它时,我都会收到以下错误:

Error:(5, 5) Groovyc: Unknown type: METHOD_DEF at line: 5 column: 5. File: <SOMEFILE>

这个语法对我来说都是正确的,我做错了什么?这是封闭的问题吗?

我在Windows 7 Professional上使用IntelliJ 14.1.1 CE

1 个答案:

答案 0 :(得分:0)

由于语法正确,我强烈认为你的Groovy版本太旧了。让IntelliJ使用Groovy 2.3+来实现这个目的。我认为编译器将`trait DataSource {...}'视为使用open block的方法调用,并对方法定义进行故障转移,因为open块不能包含一个。