2015-04-08 20 views
0

我有以下特點:未知類型:METHOD_DEF對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> 

這句法一切看起來正確的我, 我究竟做錯了什麼?這是關閉的問題嗎?

我使用的IntelliJ 14.1.1 CE在Windows 7專業版

回答

0

由於語法是正確的,我強烈假設你有一個太老的Groovy版本。讓IntelliJ使用Groovy 2.3+來實現這個功能。我認爲編譯器將`trait DataSource {...}「作爲方法調用時使用開放塊,並且因方法定義失敗,因爲一個開放塊不能包含一個。

+0

我正在使用Groovy 2.4.3 – Cayle

+0

@Cayle this是不是使用任何新奇的14.1 groovy編譯選項? – cfrick

+0

不知道,我沒有看到有關設置的任何東西。 – Cayle