1

軸のサブタイプによって拡張される全体的なaxisModelがあります。問題は、これが実装されている抽象メソッドが、一方のクラスでは日付になり、もう一方のクラスではdoubleになることです。私が思いついた唯一の解決策は、それらをジェネリックにし、これらのクラスをインスタンス化するときに仮定を立てることです。よりエレガントな解決策はありますか?以下は、私がやろうとしていることを示すためのサンプルコードです。

public class abstract axisModel {
 abstract double method();
}

public class priceAxisModel extend axisModel {
 public double method() {
  //do stuff
 }
}

public class dateAxisModel extend axisModel {
 public date method() {
  //do stuff
 }
}
4

1 に答える 1

4

あなたがジェネリックを使用することを指摘したように、この状況では良い解決策になります。例えば:

public class abstract AxisModel<T> {
 abstract T method();
}

public class PriceAxisModel extend AxisModel<Double> {
 public Double method() {
  //do stuff
 }
}

public class DateAxisModel extend AxisModel<Date> {
 public Date method() {
  //do stuff
 }
}

私の場合、このコードは非常にエレガントに見えます。

于 2012-08-16T14:24:34.197 に答える