getValue
私はこのような方法を持っています
public Object getValue() {
return Integer.valueOf(0);
}
およびmainメソッドの呼び出し:
getValue() + 5;
これは単純化されています。
mainメソッドでキャストせずにこれを機能させる方法ではなく、可能であればreturnタイプをキャストする方法は?
ジェネリックを使用できます:
public class MyClass<T extends Number>{
public T getValue(){
//do something here
}
}
MyClass<Integer> foo = new MyClass<Integer>();
foo.getValue()+5;
メソッドがオブジェクトを返す場合、Integer、Doubleなどのクラス固有の関数を使用するには、ある時点または別の時点でキャストする必要があります。
この関数をpublicObjectgetValue()と書いた場合は、それをpublic Integer getValue()に変更して、Integerを返すのではないでしょうか。
他のタイプも必要な場合は、メソッドpublic String getValue()、public Double getValue()などをオーバーロードします。ファクトリパターンを使用して、呼び出すメソッドを決定します。
キャストしたくない場合は、オブジェクトをリターンタイプとして使用しても、getValue()+5を使用することはできません。
エリバインの反応も好きです