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

发布于 2024-10-06 02:19:50 字数 715 浏览 1 评论 0原文

在下面的代码中@第4行& 5 我收到错误构造函数 DataSourceFactory.DATABASE_TYPE() 未定义

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() );

        }
    }
}

,如果我添加不带参数的构造函数,那么我收到错误令牌“”DB2T url”上的语法错误",删除此令牌
这里有什么问题呢?

In the following code @ line 4 & 5 i am getting the error 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() );

        }
    }
}

and if i will add the constructor with no arguments then i am getting the error Syntax error on token ""DB2T url"", delete this token.
What is the problem here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

有木有妳兜一样 2024-10-13 02:19:50

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

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

应该是

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

(作为旁注,我个人会避免让你的类型名称像那样大喊大叫。通常枚举是大喊大叫的,但枚举本身的名称通常采用 PascalCase 格式。 )

You've put the constructor arguments in braces, not brackets. So this:

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

should be

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

(As a side-note, I'd personally avoid making your type names shouty like that. Typically enum values are shouty, but the names of enums themselves are in PascalCase as normal.)

苯莒 2024-10-13 02:19:50

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

Constructor invoking is defined by "()". "{}" is array initializer. So, your invokation should be DB2T("DB2T url"),

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文