1

私の Java Tapestry アプリケーションには、NachrichtenBubble.java というクラスがあります。このクラスは、アナウンスするメッセージがあるかどうか、および特定の要素を表示する必要があるかどうかをテストします。次のようになります。

public boolean ShowBubble() {
    int n = getHowManyNachrichten();
    if (n == 0) {
        return false;
    }
    return true;
}

ここで、アプリケーションの別の場所で、メッセージの数に基づいて要素を表示するか非表示にするかを決定したいと考えています。これは NachrichtenBubble.ShowBubble() で既に行われているため、別のクラス (OtherClass.java と呼びましょう) から ShowBubble() を呼び出して、結果に基づいて処理できるようにしたいと考えています。

これを OtherClass.java に入れると、「タイプ NachrichtenBubble から非静的メソッド ShowBubble() への静的参照を作成できません」というエラーが表示されます。

public boolean ShowNachrichten() {
    boolean m = NachrichtenBubble.ShowBubble();
    return m;
}

ここで他の静的/非静的メソッドの質問への回答を読みましたが、これは教育的でしたが、この問題にうまく適用できませんでした。NachrichtenBubble.java で新しい Context メソッドを作成しようとして、それを OtherClass.java から呼び出しましたが、機能しません。

コンテキストベースのソリューションを試み続ける必要がありますか、または NachrichtenBubble.ShowBubble() から OtherClass.ShowNachrichten() への使用可能な結果を​​得るために試みることができる何か他のものがありますか?

4

2 に答える 2

0

これは Tapestry とはまったく関係がなく、代わりに純粋な Java とオブジェクト指向プログラミングに関する質問です。ShowBubble() と getHowManyNachrichten() を静的メソッドに変更するか、ShowNarichten で narichtenBubble という名前の NarichtenBubble フィールドを作成し、代わりに narichtenBubble.showBubble() を呼び出すことができます。ところで、あなたのメソッド名は Java の慣習から外れているため、読みにくく、理解するのが難しくなっています。

于 2013-10-08T13:28:22.393 に答える