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

解决方案 »

  1.   

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

  2.   

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

  3.   

    呵呵,
    那就写成类
    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();如果这样做,那么就不太方便
              //不知道有没有别的方法
              
         }
    }
      

  4.   

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

  5.   

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

  6.   

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