站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于Number的想法

关于Number的想法

摘要: 关于Number的想法


关于Number的想法

public interface Operationg {
public static Number add(Number a, Number b) ;
}

如上,我想做的就是想要实现上面那个方法,
如 OperationImp.add(0.1,100);
返回一个Number,并且运算的时候按照基础类型的运算法则,转为float来运算。
请问大家,我的想法有实现的方法吗



你在接口里,方法的声明不允许加static
其他的都没什么,只要实现这个接口就可以了


谢谢,不过我实际想做是
Integer a = 100;
Double b = 200.0;
OperationImp.add(a,b);
这样在实现的那个方法中
public Number add(Number a, Number b) {
//这里不能用return a+b;应该怎么写
}



那你干脆不要用接口, 直接写类不就行了么?


呵呵,
那就写成类
public class Operation {
public Number add(Number a, Number b) {
//请问这边怎么写?
//我现在只想到的方法为
if (a.getClass().equals(Integer.class)) {
if (b.getClass().equals(Integer.class)) {
return a.intValue()+b.intValue();
} else if (b.getClass().equals(Float.class)) {
return a.intValue()+b.floatValue();
}
.......
}
.......
//做几个判断(a.getClass()).equals(Integer.class)//Float.class....
//然后return a.intValue().b.flatValue();如果这样做,那么就不太方便
//不知道有没有别的方法

}
}


这样做的效率还不如直接都转成long来计算的效率高,我就是想知道这边有什么好的转换方法,麻烦大家了


没有long的高是肯定的,什么方法都没有long的高


如果按照楼上的说法,那么还要int,short,double干什么,直接所有的计算都用long来计算不就得了,还比较正确,只在最后结果的时候取相应的小数位,或者整数什么的


↑返回目录
前一篇: nio问题
后一篇: 哪位大侠帮我解释一下结果是怎么来的