加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java构造函数无法使用varargs

发布时间:2020-12-15 05:11:31 所属栏目:Java 来源:网络整理
导读:我有以下枚举,其中包含许多构造函数: public enum Route{ HOMEPAGE("",null,UserType.GUEST); Route(String baseName,String langFile,Entity entity) {} Route(String langFile,Entity entity) {} Route(String langFile,UserType... availability) {} Rou
我有以下枚举,其中包含许多构造函数:

public enum Route
{
   HOMEPAGE("",null,UserType.GUEST);

   Route(String baseName,String langFile,Entity entity) {}
   Route(String langFile,Entity entity)  {}
   Route(String langFile,UserType... availability) {}
   Route(String baseName,UserType... availability) {}
}

在这种情况下,当我定义HOMEPAGE时,我很清楚地调用了第4个构造函数.但问题是,我收到错误:无法解析构造函数Route(java.lang.String,com.foo.UserType).

如果我从构造函数中删除varags,即它看起来像:

Route(String baseName,UserType availability) {}

或者,如果我在定义HOMEPAGE时更改null,即:

HOMEPAGE("","",UserType.GUEST);

然后它工作.但这对我来说没有意义.为什么不检测到我正在调用第4个构造函数?

解决方法

问题是null可以是String或UserType.所以:

HOMEPAGE("",UserType.GUEST);

将匹配第三或第四个构造函数.将null转换为String将导致选择第四个构造函数:

HOMEPAGE("",(String) null,UserType.GUEST);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读