我有这两个枚举类,其中 Item 包含带有描述的项目。枚举类字符有四个不同的Character对象:LAURA,SALLY,ANDY和ALEX,每个都用描述和项进行参数化;后者可能为空。
物品
public enum Item
{
SANDWICH("sandwich"), CRISPS("crisps"), DRINK("drink");
private String description;
Item(String description)
{
this.description = description;
}
public String toString()
{
return description;
}
}
字符
public enum Character
{
LAURA("Laura",Item.SANDWICH),SALLY("Sally", Item.CRISPS),ANDY("Andy", Item.DRINK),ALEX("Alex", null);
private String Chardescription;
private Item item;
private Character(String Chardescription)
{
this.Chardescription= Chardescription;
}
private Character(Item item)
{
this.item= item;
}
public String toString()
{
return Chardescription;
}
}
问题在于枚举类字符,当我编译时,我得到错误&#34;没有为Character找到合适的构造函数(java.lang.String.Item)&#34; < / p>
答案 0 :(得分:2)
任何类的构造函数,不仅仅是Enum
,都不应该在每个字段的基础上创建。
创建一个同时获取两个值的构造函数。
private Character(String Chardescription, Item item) {
this.Chardescription = Chardescription;
this.item = item;
}
另外,通常的Java命名约定会将其命名为charDescription
,而不是Chardescription
。此外,最好不要将任何类命名为内置Java类(Character
)。
答案 1 :(得分:2)
您必须在构造函数中指定Item参数。
private Character(String Chardescription, Item item) {
this.Chardescription = Chardescription;
this.item = item;
}