我有以下枚举具有多种构造的工作: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) {}
Route(String baseName, String langFile, UserType... availability) {}
}
在这种情况下,我很清楚地调用构造函数4时,我定义HOMEPAGE
。但问题是,我收到错误:Cannot resolve constructor Route(java.lang.String, null, com.foo.UserType)
。
如果我或者删除从构造,即在varags所以它看起来像:
Route(String baseName, String langFile, UserType availability) {}
或者,如果我定义时HOMEPAGE
,即改变空:
HOMEPAGE("", "", UserType.GUEST);
然后,它的工作原理。但是这对我来说没有意义。为什么它没有检测到我在调用第4个构造函数?
我看...很棘手。感谢您澄清它。如果我将null转换为String,那么我的构造函数仍然会接受null作为该参数的值? –
@ClickUpvote,是的,它将保持'空'。 – hmjd
只是澄清,我不明白,因为第三个构造函数只有两个参数,并且调用显然传递了三个参数......如何将调用误认为第三个构造函数? – Gladhus