我见过这个问题的大多数人都使用=
,他们需要==
。是什么原因引起了我的问题?
com\callmeyer\jopp\FieldCoordinator.java:303: unexpected type required: class, package found : variable if (event.getType() == event.Type.INSERT) { ^
枚举定义和访问者:
public class DataLayoutEvent {
public static enum Type { INSERT, DELETE, RENAME, MOVE, RESIZE }
private Type type = null;
public Type getType() {
return type;
}
...
}
以及发生错误的方法:
public void layoutChanged(DataLayoutEvent event) {
if (event.getType() == event.Type.INSERT) {
fieldAdded(event.getField(), event.getToIndex());
}
...
答案 0 :(得分:4)
使用静态访问而不是实例访问:
if (event.getType() == DataLayoutEvent.Type.INSERT) {
您可以(但不应该)对静态成员(方法和字段)使用实例访问,但不能对内部类型使用实例访问。
答案 1 :(得分:3)
应该是:
// From within DataLayoutEvent
if (event.getType() == Type.INSERT) {
或
// From other classes
if (event.getType() == DataLayoutEvent.Type.INSERT) {
Type
部分是类型的名称 - 它不能由变量值(event
)限定。如果你想在其他地方使用第一个表格,你可以导入DataLayoutEvent.Type
。
答案 2 :(得分:1)
我认为您需要以不同的方式引用Type
:
if (event.getType() == DataLayoutEvent.Type.INSERT) { ... }