1

getValue私はこのような方法を持っています

public Object getValue() {
     return Integer.valueOf(0);

}

およびmainメソッドの呼び出し:

getValue() + 5;

これは単純化されています。

mainメソッドでキャストせずにこれを機能させる方法ではなく、可能であればreturnタイプをキャストする方法は?

4

3 に答える 3

7

ジェネリックを使用できます:

public class MyClass<T extends Number>{


  public T getValue(){
    //do something here
  }
}

MyClass<Integer> foo = new MyClass<Integer>();
foo.getValue()+5;
于 2012-04-14T02:15:57.723 に答える
2

メソッドがオブジェクトを返す場合、Integer、Doubleなどのクラス固有の関数を使用するには、ある時点または別の時点でキャストする必要があります。

于 2012-04-14T02:16:36.070 に答える
0

この関数をpublicObjectgetValue()と書いた場合は、それをpublic Integer getValue()に変更して、Integerを返すのではないでしょうか。

他のタイプも必要な場合は、メソッドpublic String getValue()、public Double getValue()などをオーバーロードします。ファクトリパターンを使用して、呼び出すメソッドを決定します。

キャストしたくない場合は、オブジェクトをリターンタイプとして使用しても、getValue()+5を使用することはできません。

エリバインの反応も好きです

于 2012-04-14T02:16:09.577 に答える