我有一个班级Calculation
,其中包含一组CalculationResult
。
CalculationResult
有一个属性String result
。它是一个String,但该值可以表示计算的日期,boolean,double,...
所以我正在考虑制作它以便我可以使用正确的数据类型获得结果:
public Date getAsDate();
public BigDecimal getAsBigDecimal();
...
但我不确定如何才能最好地实现这一点。
任何指针都表示赞赏!
答案 0 :(得分:4)
通常您会知道您对计算的期望结果。所以你可以制作一个public class CalculationResult<T>
。然后使用,例如:
CalculationResult<BigDecimal> result = calculator.getResult(..);
否则,如果您的结果始终是字符串,那么getAsX
方法可以通过Integer.parseInt(str)
,new BigDecimal(str)
和new Date(Long.parseLong(str))
等方法实现(或使用一个DateFormat
)。但请注意,将非文本保持为字符串是错误的。