可变数据类型

时间:2011-10-20 08:16:31

标签: java types

我有一个班级Calculation,其中包含一组CalculationResult

CalculationResult有一个属性String result。它是一个String,但该值可以表示计算的日期,boolean,double,...

所以我正在考虑制作它以便我可以使用正确的数据类型获得结果:

public Date getAsDate();
public BigDecimal getAsBigDecimal();
...

但我不确定如何才能最好地实现这一点。

任何指针都表示赞赏!

1 个答案:

答案 0 :(得分:4)

通常您会知道您对计算的期望结果。所以你可以制作一个public class CalculationResult<T>。然后使用,例如:

CalculationResult<BigDecimal> result = calculator.getResult(..);

否则,如果您的结果始终是字符串,那么getAsX方法可以通过Integer.parseInt(str)new BigDecimal(str)new Date(Long.parseLong(str))等方法实现(或使用一个DateFormat)。但请注意,将非文本保持为字符串是错误的。