只传一个new Object[]{1,2} 时,系统会把new Object[]{1,2}解析为os的数据,这样os的长度就是你的Object 数组的长度了
如果给传多个数组,或参数时,那么new Object[]{1,2}  就不再是 os ,而是os[0]了
或者 让一个object 变量指向数组,传变量进去,长度就精准了
Object obj = new Object[]{1,2};  fnc(obj);

解决方案 »

  1.   

    只传入非对象的数组时,像基本类型的数组时,它会把整个数组当做一个Object 实例,打印出的结果为 1 ,fnc(new int[3]);
    如果传进的只是一个对象数组时,那么可变参数会把这个对象数组的长度打印出来eg: fnc(new Object[3])  3
      

  2.   

    我那只能用Object,
    java 里还有没有什么修饰符,其它写法什么的
      

  3.   

    Object类  是所有对象的基类,用Object 变量指向其子类对象就可以了。
    Object obj = new Object[]{1,2};  fnc(obj); 
    用其他的修饰符,这个暂时还不清楚。