我有一个Number对象并调用" intValue()"这将返回一个Integer值。 但是,如果该值大于Integer.MAX_VALUE,则该方法会进行舍入。没关系,但是如果功能完成,我想知道。
有什么方法可以在intValue回合时收到通知吗?
我可以做的解决方法:
if (Number.longValue() > Integer.MAX_VALUE)
okay, it will be rounded... some logic here
有更好的方法吗?
答案 0 :(得分:1)
Number本身就是抽象类。 Integer是Number的子类。可能是,在你的情况下,它足以检查对象的instanse是否为Integer?
Number num = ....
int i = 0;
if (num instanceof Integer) {
i = (Integer)num;
}
答案 1 :(得分:1)
您可以投射并捕捉异常
Integer intVersion;
Number longVersion = 2332212344334L;
try{
intVersion = (Integer) longVersion;
}
catch(ClassCastException e) {
System.out.println("here is your notification :)");
}