当我输入一个字符串,它不在列表中,我在枚举CrimeType得到这个错误非法参数异常
class: IllegalArgumentException, no enum const class CrimeType.a(in java.lang.Enum).
是什么意思,我该如何解决这一问题?
public void enterCrime()
{
Crimes crimes = new Crimes();
System.out.print("\t\tEnter crime: ");
crimeName = In.nextLine();
if("murder".equals(crimeName) || "arson".equals(crimeName) || "assault".equals(crimeName))
{
crimes.daysToStay(3);
}
else if("fraud".equals(crimeName) || "theft".equals(crimeName) || "vandalism".equals(crimeName))
{
crimes.daysToStay(2);
}
else if("drunk".equals(crimeName) || "littering".equals(crimeName) || "badHair".equals(crimeName))
{
crimes.daysToStay(1);
}
else
{
System.out.println("\t\tThat is not a valid crime. The crimes are");
crimes.list();
}
crimes.add(crimeName);
enterAction();
}
枚举类
public enum CrimeType
{
murder, arson, assault, fraud, theft, vandalism, drunk, littering, badHair;
}
犯罪类
import java.util.*;
import java.text.*;
public class Crimes
{
private LinkedList<CrimeType> crimes = new LinkedList<CrimeType>();
public Crimes()
{
}
public void add(String crime)
{
CrimeType newCrime = CrimeType.valueOf(crime);
crimes.add(newCrime);
}
好了,我把它改成.equals现在,修复了第一个问题,但是当我进入别的东西,我仍然在枚举类中出现这个错误。
你在写什么类型的软件? badHair!?!为什么要在那里停下来,你可以添加数以千计的这些枚举值。 – 2009-09-13 08:48:55
我在主代码中没有看到任何对CrimeType的引用。我错过了什么吗? – KLE 2009-09-13 08:50:04
请指定crime.add(String crimeName)方法。 – crunchdog 2009-09-13 08:50:33