2010-12-07 20 views
0

次のコードでは、@ line 4 & 5エラーが発生しています。The constructor DataSourceFactory.DATABASE_TYPE() 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()); 

     } 
    } 
} 

引数なしでコンストラクタを追加すると、エラーが発生します。
ここで問題は何ですか?

答えて

9

コンストラクタの引数は、かっこではなく角かっこで囲みます。だから、この:

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

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

(サイドノートとして、私は個人的にあなたのタイプ名がそのようshoutyことを避けるだろうでなければなりません通常がshoutyている値が、名前を列挙します。列挙型自体は通常のようにPascalCaseにあります)。

2

コンストラクター呼び出しは "()"で定義されます。 "{}"は配列の初期化子です。あなたの呼び出しはDB2T("DB2T url"),

である必要があります
関連する問題