Object作为所有类的基类,可以接收转换任何子类,但是一般什么情况下才会用Object作形参??希望高手们举几个例子,谢谢。。

解决方案 »

  1.   

    public class Main {
    // 给你个例子,仔细看看吧 public static Object sum(Object obj1, Object obj2) { int inttmp1 = 0, inttmp2 = 0;
    double doubletmp1 = 0.0, doubletmp2 = 0.0; if (obj1 instanceof Integer)
    inttmp1 = (Integer) obj1; else if (obj1 instanceof Double)
    doubletmp1 = (Double) obj1; if (obj2 instanceof Integer)
    inttmp2 = (Integer) obj2; else if (obj2 instanceof Double)
    doubletmp2 = (Double) obj2; return doubletmp1 + doubletmp2 + inttmp1 + inttmp2;
    } public static void main(String[] args) {
    System.out.println(sum(1, 2));
    System.out.println(sum(1.0, 2.5));
    System.out.println(sum(1, 2.5)); }
    }
      

  2.   

    实际应用中用过json没?json的源码看看就知道了。。json的源码包对timesteamp类型等某些时间类型的转换存在问题,就需要自己重写去添加这部分的转换:等于添加 else if (obj1 instanceof Timesteamp)这种形式让其可以正常转换。
      

  3.   

    可以是可以,但是还需要转型,而且还有缺点,就是能够接受任意类型的参数,会导致运行时错误;
    如果在参数中明确类型,则只会有编译时错误;
    比如: public boolean equals(Object o){  //能够接受任何类型,比如String,int[],只有在运行时才会报错
    if(o==null) return false;
    if(!o instanceof A)return false;  //A是你想要接受的类型
    A a = (A)o;
    ....
    }
      

  4.   

    sql语句中的参数,如spring对jdbc,Hibernate的帮助类,传参数时指定了要用Object[]