2015-11-02 63 views
0

我有以下類:Groovy類重寫構造函數,爲什麼MissingMethodException?

@groovy.transform.InheritConstructors 
class PythonBuild { 
    def basePath 
    def branchName 

    PythonBuild(String basePath, String branchName) { 
     // stuff 
    } 
} 

當我實例是:

master = PythonBuild('Python-Backend/+MASTER/', 'master') 

我得到這個錯誤:

groovy.lang.MissingMethodException: No signature of method: 
Script1.PythonBuild() is applicable for argument types: 
(java.lang.String, java.lang.String) values: [Python-Backend/+MASTER/, master] 

此錯誤是沒有意義的我,因爲,據我可以告訴,構造函數被定義爲兩個字符串,我傳遞兩個字符串。

我是Groovy的新手,通過複製示例已經掌握了這一點。我究竟做錯了什麼?

+0

看起來'Newify'沒有被繼承。你可以檢查一下嗎?用'Newify'註釋'PythonBuild'? – Opal

+1

不應該在啓動新類時使用關鍵字'new' master = new PythonBuild('Python-Backend/+ MASTER /','master')' – Rumoku

+0

@mst是正確的,你只是缺少'new'當試圖調用構造函數時,「PythonBuild」的前面......投票將其作爲一個簡單的印刷錯誤關閉 –

回答

2

new關鍵字錯過,同時調用構造函數。

@groovy.transform.InheritConstructors 
class PythonBuild {  
    def basePath  
    def branchName  
    def PythonBuild(String basePath, String branchName) { } 
} 


def master = new PythonBuild('Python-Backend/+MASTER/', 'master') 


println(master) 
+0

是的,就是這樣,謝謝:) – Anentropic

相關問題