1

私は次のクラスを持っています

インターフェース:

public abstract class MyAbstractClass
{
  public abstract boolean checkSomething();
}

抽象クラスを継承するクラス:

public class MyClass extends MyAbstractClass
{
  public boolean checkSomething()
  {
    return true;
  }
}

Eclipse で MyClass を作成すると、checkSomething() メソッドが自動的に作成されますが、デフォルトの戻り値は false です。抽象メソッド定義でデフォルトの戻り値の型を指定する方法はありますか?

4

3 に答える 3

3

いいえ、Java には「デフォルトの戻り値」というものはありません。各実装はそれ自体でそれを決定する必要があります-それは、たまたまfalseを選択したEclipseが使用するメソッドテンプレートです。とにかくメソッド本体を置き換える必要があることを考えると、これはそれほど問題ではないと思います。

「真を返すだけ」のデフォルトの実装が合理的である場合、checkSomethingそもそも抽象的であってはならないように思えます-それはデフォルトの実装が存在する場所であり、より具体的な動作を提供したいクラスによってオーバーライドされます。

于 2012-01-26T10:33:03.953 に答える
3

Eclipseコードテンプレートを見てください

それ以外に、カスタム注釈を作成して同じことを実現できます。

于 2012-01-26T10:35:11.457 に答える