2010-12-07 41 views
0

在下面的代碼行@ 4 & 5我正在錯誤The constructor DataSourceFactory.DATABASE_TYPE() is undefined爲什麼我得到錯誤「Constructor is undefined」?

public class DataSourceFactory { 

    public enum DATABASE_TYPE {  
     DB2T { "DB2T url" }, 
     DB2Q { "DB2Q url" }; 

     private final String url;  

     DATABASE_TYPE(String _url){ 
      this.url = _url; 
     } 

     public String getUrl() { 
      return url; 
     }  

    }; 

    public static void main(String[] args) { 
     for (DATABASE_TYPE dt : DATABASE_TYPE.values()){ 
      System.out.println(dt.getUrl()); 

     } 
    } 
} 

,如果我將不帶任何參數,然後我得到的錯誤Syntax error on token ""DB2T url"", delete this token添加構造函數。
這裏有什麼問題?

回答

9

您已將構造函數參數放在大括號中,而不是括號中。所以這個:

DB2T { "DB2T url" }, 
DB2Q { "DB2Q url" }; 

應該

DB2T("DB2T url"), 
DB2Q("DB2Q url"); 

(作爲一個側面說明,我會親自避免你的類型名稱shouty像通常枚舉是shouty,但名稱。 )。

2

構造函數的調用由「()」定義。 「{}」是數組初始值設定項。所以,你的調用應該是DB2T("DB2T url"),

相關問題