我有一个Number对象,并调用"intValue()",它将返回一个Integer值。但是,如果该值大于Integer.MAX_value,则该方法将舍入。没关系,但如果函数循环,我想得到通知。
有没有办法通知intValue何时取整?
作为变通办法,我可以做:
if (Number.longValue() > Integer.MAX_VALUE)
okay, it will be rounded... some logic here
有更好的方法吗?
您可以投射并捕获异常
Integer intVersion;
Number longVersion = 2332212344334L;
try{
intVersion = (Integer) longVersion;
}
catch(ClassCastException e) {
System.out.println("here is your notification :)");
}
数字本身就是一个抽象类。Integer是Number的子类。可能是,在您的情况下,检查对象的instense是否为Integer就足够了?
Number num = ....
int i = 0;
if (num instanceof Integer) {
i = (Integer)num;
}