为什么我收到错误"构造函数未定义"?

Rak*_*yal 0 java enums constructor

在以下代码@第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() );

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我将添加没有参数的构造函数,那么我收到错误Syntax error on token ""DB2T url"", delete this token.
这里有什么问题?

Jon*_*eet 9

您已将构造函数参数放在大括号中,而不是括号中.所以这:

DB2T    { "DB2T url"    },  
DB2Q    { "DB2Q url"    };
Run Code Online (Sandbox Code Playgroud)

应该

DB2T("DB2T url"),  
DB2Q("DB2Q url");
Run Code Online (Sandbox Code Playgroud)

(作为旁注,我个人会避免让你的类型名称像那样嘶哑.通常枚举很大,但枚举的名称本身就像PascalCase一样.)