我需要在一个对象的方法中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];
//这样是不能把数组构建传回主调函数的,我该怎么做呢?
}
}
比如:
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];
//这样是不能把数组构建传回主调函数的,我该怎么做呢?
}
}
换种想法
建议使用Collection等类型进行装载返回.
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);
}
{
byte[][]m1 = new byte[i][j];//需要判断数据类型,返回或者float,double的数组,不一定是byte
byte[][]m2 = new byte[j][i];
//这样是不能把数组构建传回主调函数的,我该怎么做呢?
v.add(m1);
v.add(m2);
}这样……这样就有些难看了,还要专门为它写文档,写例子,然后其他用户才看的懂这个Vector是什么。呵呵!