老师出了一道题,写一个方法要求可以接受int,float,double,String型进行加法计算.不许用重载用OOP的思想写,我到是写出来了就是感觉写的不好:下面是我的原码,谁有更好的想法:
声明一个接口:
public interface MyInterface {
public Object add(Object shuzi1,Object shuzi2);
}写一个类:
public class IterfaceDemo implements MyInterface { public Object add(Object shuzi1, Object shuzi2) {
// TODO 自动生成方法存根

if (shuzi1.getClass().getCanonicalName() == "java.lang.Integer")
{

return (Integer.valueOf(shuzi1.toString()) + Integer.valueOf(shuzi2.toString()));
}
else if (shuzi1.getClass().getCanonicalName() == "java.lang.Float")
{
return (Float.valueOf(shuzi1.toString()) + Float.valueOf(shuzi2.toString()));
}
else if (shuzi1.getClass().getCanonicalName() == "java.lang.Double")
{
return (Double.valueOf(shuzi1.toString()) + Double.valueOf(shuzi2.toString()));
}
else if (shuzi1.getClass().getCanonicalName() == "java.lang.String")
{
return shuzi1.toString() + shuzi2.toString();
}
System.out.println(shuzi1.getClass().getCanonicalName());
return 0;
}

}写一个测试类public class InterfaceTest { /**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根
//利用类库
IterfaceDemo e = new IterfaceDemo();
IterfaceDemo d = new IterfaceDemo(); 
IterfaceDemo f = new IterfaceDemo();
System.out.println("利用类库");
System.out.println(e.add(23, 34));
System.out.println(d.add(23.3, 3.3));
System.out.println(f.add("ff", "gg"));
   }
}
功能是实现了但是觉得完全是面向过程和用类库写出来得,不知道大家有什么更好的方法,互相交流一下.