我需要在一个对象的方法中new一个由对象本身决定的数组,然后传回给主调函数,该怎么做呢?
比如:
public static void main(String args[])//某个类中
{
    T t = new T(..);
    byte[][] data1 = null;
    byte[][] data2 = null;
    t.foo(data,data2);//因为可能需要得到不同数据类型的数组,所以设成Object,
    System.out.println(data1);//还是null
}public class T
{
    int i = ..,j = ..;//两个由对象决定的数,作为数组大小,具体数值由对象构造函数决定。
    public void foo(Object m1,Object m2)
    {
        m1 = new byte[i][j];//需要判断数据类型,返回或者float,double的数组,不一定是byte
        m2 = new byte[j][i];
        //这样是不能把数组构建传回主调函数的,我该怎么做呢?
    }
}

解决方案 »

  1.   

    ^_^,改变返回类型不要用void用return类型
    换种想法
      

  2.   

    有时候的确有这样的需求,即非得传多个值的情况:
    建议使用Collection等类型进行装载返回.
      

  3.   

    如 
    public void foo(Vector v)
        {
            byte[][]m1 = new byte[i][j];//需要判断数据类型,返回或者float,double的数组,不一定是byte
            byte[][]m2 = new byte[j][i];
            //这样是不能把数组构建传回主调函数的,我该怎么做呢?
            v.add(m1);
            v.add(m2);
        }
      

  4.   

    public void foo(Vector v)
    {
    byte[][]m1 = new byte[i][j];//需要判断数据类型,返回或者float,double的数组,不一定是byte
    byte[][]m2 = new byte[j][i];
    //这样是不能把数组构建传回主调函数的,我该怎么做呢?
    v.add(m1);
    v.add(m2);
    }这样……这样就有些难看了,还要专门为它写文档,写例子,然后其他用户才看的懂这个Vector是什么。呵呵!