2010-12-07 253 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"),