【发布时间】:2017-11-20 14:20:26
【问题描述】:
public enum ProgramOfStudy {
ComputerScience("CS"), AutomotiveComputerScience("ACS"), BusinessInformatics("BI");
public final String shortCut;
ProgramOfStudy(String shortCut) {
this.shortCut = shortCut;
}
public static ProgramOfStudy getByShortCut(String shortCut) {
for (ProgramOfStudy program : ProgramOfStudy.values()) {
if (ProgramOfStudy.valueOf(shortCut).equals(program))
return program;
}
return null;
}
}
当像这样调用 getByShortCut 方法时:getByShortCut("CS") 我不断收到错误消息:“No enum constant ProgramOfStudy.CS”我在这里做错了什么?
【问题讨论】:
-
你做错的是用你的编译器而不是你的头脑思考。将
ProgramOfStudy.valueOf(shortCut).equals(program)更改为program.shortCut.equals(shortCut)。 -
getByShortCut 与 valueOf 有何不同???