在以下代码中@ 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() );
}
}
}
如果我将添加没有参数的构造函数,那么我收到错误Syntax error on token ""DB2T url"", delete this token
这有什么问题?
答案 0 :(得分:9)
您已将构造函数参数放在大括号中,而不是括号中。所以这个:
DB2T { "DB2T url" },
DB2Q { "DB2Q url" };
应该是
DB2T("DB2T url"),
DB2Q("DB2Q url");
(作为旁注,我个人会避免让你的类型名称像那样呐喊。通常枚举值是狡猾的,但枚举的名称本身在PascalCase中是正常的。)< / p>
答案 1 :(得分:2)
构造函数调用由“()”定义。 “{}”是数组初始值设定项。因此,您的调用应为DB2T("DB2T url"),