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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |