关于参数传递

jilu0002 2005-11-08 10:06:09
我需要在一个对象的方法中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];
//这样是不能把数组构建传回主调函数的,我该怎么做呢?
}
}
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_you 2005-11-08
  • 打赏
  • 举报
回复
嘿嘿,这只是举个例,你大可以实现一个类,来存储需要的变量啊?
举一反三的能力应该具备才行.
jilu0002 2005-11-08
  • 打赏
  • 举报
回复
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是什么。呵呵!
liu_you 2005-11-08
  • 打赏
  • 举报
回复

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);
}
liu_you 2005-11-08
  • 打赏
  • 举报
回复
有时候的确有这样的需求,即非得传多个值的情况:
建议使用Collection等类型进行装载返回.
liu_you 2005-11-08
  • 打赏
  • 举报
回复
参数只能传递对象的引用(也就是内存地址),你可以针对该内存地址进行更新,但若将参数的引用改变后,所修改的内容将不可能由参数传回.
classjava 2005-11-08
  • 打赏
  • 举报
回复
^_^,改变返回类型不要用void用return类型
换种想法

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧