我编写了以下Java类,它基于Google Web Toolkit源代码的SAMPLES文件夹中的EXPENSES应用程序。代码如下。
我的目标是了解java enums的工作方式,我认为这可能是一个很好的起点。我已经浏览了有关ENUMS的互联网资料,我得到了基本概念。但是我仍然在努力理解这段代码。
这是我的代码:
public class Expenses {
public static enum Approval {
BLANK("", APPROVED("Approved"),DENIED("Denied"));
/**
* Get the {@link Approval} from the specified string.
*
* @param approval the approval string
* @return the {@link Approval}
*/
public static Approval from(String approval) {
if (APPROVED.is(approval)) {
return APPROVED;
} else if (DENIED.is(approval)) {
return DENIED;
}
return BLANK;
}
private final String text;
private Approval(String text) {
this.text = text;
}
public String getText() {
return text;
}
public boolean is(String compare) {
return text.equals(compare);
}
}
public static final String[] DEPARTMENTS = {
"Engineering", "Finance", "Marketing", "Operations", "Sales"};
}
Eclipse抱怨APPROVED和DENIED。
The method DENIED(String) is undefined for the type
Expenses.Approval
- The method APPROVED(String) is undefined for the type
Expenses.Approval
什么是BLANK(...)的事情?它是某种数据结构吗? 这有什么作用?
我正在寻找的是一种理解此代码的方法,并在尝试更多地使用此代码之前消除编译错误。
答案 0 :(得分:2)
这是一个括号问题。添加换行符以提高可读性。
BLANK(""),
APPROVED("Approved"),
DENIED("Denied");