从对象向量获取int

时间:2019-07-02 10:00:43

标签: java lotus-notes

我使用一种从数据库中获取数据并将其存储在向量中的方法。该方法将始终返回“对象向量”,其中“对象”数据类型可以是“日期”,“双精度”或“字符串”。就我而言,我知道我正在获取Double,但是我想将其转换为int。有没有比以下更简单的方法了?

System.out.println((int)Double.parseDouble(vector1.get(1).toString()));

我尝试过的其他方法无效:

System.out.println((Integer)vector1.get(1)); // java.lang.ClassCastException: java.lang.Double incompatible with java.lang.Integer

System.out.println((int)vector1.get(1));

在此先感谢您的建设性回应

3 个答案:

答案 0 :(得分:1)

遵循此answer,我们可以将代码转换为

Double d = vector1.get(1);
Integer i = d.intValue();

在这里我假设如果您有一些数组,也许您希望将其中的所有数据从Double转换为Integer

vector1.stream().mapToInt(n -> n.intValue()).mapToObj(Integer::new).collect(Collectors.toList());

vector1.stream().mapToInt(Double::intValue).mapToObj(Integer::new).collect(Collectors.toList());

答案 1 :(得分:0)

您可以使用intValue()来获取int值。

Double b = new Double((double)vector1.get(1));   
int value = b.intValue(); 

答案 2 :(得分:0)

您可以使用Math.round(double)来获取int值。为

Double d = Double.parseDouble(vector1.get(1));

int v =(int)Math.round(d);