我正在使用 Java 中的枚举。正如我所看到的,可以重载枚举构造函数。我的问题是,在这种情况下,是否有可能从构造函数重载中受益,因为据我所知,既不可能自己调用它,也不可能强制编译器调用您想要调用的特定构造函数?
感谢您花时间向我澄清这些内容,并希望这对可能有相同问题的其他人也有用。
You do在设置枚举值时调用它。例如:
public enum Person
{
FRED("Frederick", "Fred"),
PETE("Peter", "Pete"),
MALCOLM("Malcolm"); // No nickname
private final String nickname;
private final String name;
private Person(String name, String nickname)
{
this.name = name;
this.nickname = nickname;
}
private Person(String name)
{
this(name, name); // Just use the name as the nickname too
}
// getNickname and getName
}
我过去曾在各种项目中使用过这种能力。枚举是 Java 最好的功能之一 - 当然,这也是我在 C# 中工作时从 Java 中怀念的为数不多的功能之一。 (我确信它们可以更巧妙地实现,但是......)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)