2

この問題で私が見たほとんどの人は=、必要な場所を使用していまし==た。ここで私の問題を引き起こしているのは何ですか?

com\callmeyer\jopp\FieldCoordinator.java:303: 予期しないタイプ
必須: クラス、パッケージ
見つかった : 変数
                    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());
    }

    ...
4

3 に答える 3

4

インスタンス アクセスの代わりに静的アクセスを使用します。

if (event.getType() == DataLayoutEvent.Type.INSERT) {

静的メンバー (メソッドとフィールド) にはインスタンス アクセスを使用できますが (すべきではありません)、内部型には使用できません。

于 2011-09-02T16:23:44.940 に答える
3

次のようにする必要があります。

// From within DataLayoutEvent
if (event.getType() == Type.INSERT) {

また

// From other classes
if (event.getType() == DataLayoutEvent.Type.INSERT) {

このType部分は型の名前です。変数値 ( event) で修飾することはできません。DataLayoutEvent.Typeちなみに、他の場所から最初のフォームを使用したい場合は、インポートできます。

于 2011-09-02T16:23:15.950 に答える
1

別の方法で参照する必要があると思いますType

if (event.getType() == DataLayoutEvent.Type.INSERT) { ... }
于 2011-09-02T16:24:51.070 に答える