Ann*_*lee -1 java double casting bigdecimal
我正在使用 jdbc 连接查询数据库:
List<Map<String, Object>> rows = jdbcTemplate.queryForList(SELECT_QUERY);
for(Map row : rows) {
Results result = new Results();
result.setResultValueDouble((Double)row.get("AMOUNT"));
//add the data object to the list
resultList.add(result);
}
Run Code Online (Sandbox Code Playgroud)
但是,我查询的对象是 BigDecimal,我想将其转换为普通双精度。使用强制转换不起作用并给我一个ClassCastException.
有什么建议如何正确地投射这个对象吗?
感谢您的回复!
result.setResultValueDouble(((BigDecimal)row.get("AMOUNT")).doubleValue());
Run Code Online (Sandbox Code Playgroud)
对对象进行强制转换不会更改对象的类型,只会更改用于引用该对象的表达式的类型,因此它无法将 BigDecimal 转换为 Double,因为 BigDecimal不是Double。相反,调用doubleValue()BigDecimal 的方法。