有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么会出现“构造函数未定义”错误?

在以下代码中,第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
这里有什么问题


共 (2) 个答案

  1. # 1 楼答案

    您已经将构造函数参数放在大括号中,而不是括号中。因此:

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

    应该是

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

    (顺便说一句,我个人不想让你的类型名这么简单。通常,enum是shouty,但enum本身的名称通常是PascalCase。)

  2. # 2 楼答案

    构造函数调用由“()”定义。“{}”是数组初始值设定项。因此,您的调用应该是DB2T("DB2T url"),