4

今、インターフェイス DetailUI があり、何千ものクラスが DetailUI インターフェイスを実装しています。メソッド isXXX() を追加したいのですが、現在のすべてのクラスが自動的にメソッドを実装し、メソッドがデフォルトで true を返すようにしたいと考えています。日食の簡単な方法は?

4

3 に答える 3

4

たぶん別の方法があるかもしれませんが、あなたはできます

  • インターフェイスにメソッド宣言を追加します
  • [問題] ビューに移動し、新しいメソッドによって発生したコンパイル エラーのいずれかを選択し、右クリックして [クイック修正] を選択します。
  • 「実装されていないメソッドを追加」を選択し、ダイアログの下部にある他のすべてのクラスを選択します

ただし、これにより、生成されたメソッドは false を返します。

public boolean isXXX() {
    // TODO Auto-generated method stub
    return false;
}

したがって、検索のために次の正規表現で検索して置き換えることができます。

// TODO Auto-generated method stub\R\s*return false;

そして、次の置換文字列:

return true;
于 2012-11-23T08:34:14.087 に答える
2

はい。「問題」ビューに移動し、メソッドが欠落していることを示すすべての問題を選択します (「型 XYZ は継承されたものを実装する必要があります...」)。それらをすべて選択したら、右クリックして「クイック修正」を選択します。

于 2012-11-23T08:34:23.793 に答える
0

上記のソリューションは、インターフェイスを実装するクラス階層の場合には理想的ではない可能性があります。抽象スーパー クラスが存在する場合、別のメソッドが見つからないため、エラーのフラグが立てられません。Type Hierarchy ビュー (Windows では F4) を使用して最上位のクラスを検索し、そこにメソッドを追加する方が便利であることがわかりました。

もう 1 つの方法は、デフォルトの実装を許可する Java 1.8 にアップグレードすることです。https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html

于 2015-05-21T18:56:33.413 に答える