如何使用返回数组的函数?

gtkknd 2006-04-11 08:10:34
如何使用返回数组的函数
假如有一返回数组的函数定义如下:
public byte[] Function()
{
byte[] TempArray=new byte[100];
...
return TempArray;
}

我这样使用该函数为何得到的数组内容不对
byte[] MyArry;
MyArry=Function();

如果这样使用该函数还是不对
byte[] MyArry=new byte[100];
MyArry=Function();
这是为什么?
我该如何使用该函数?
...全文
406 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamover 2006-04-12
  • 打赏
  • 举报
回复
这样用的时候注意的是Function()体里要有为返回值新申请的堆空间
------------------------------------------------------------
这句话不对,收回
dreamover 2006-04-12
  • 打赏
  • 举报
回复
测试用例
Test.java
public class Test {
public String[] foo(){
String[] result = new String[2];
result[0] = "hello";
result[1] = "world";
return result;
}
public static void main(String[] args){
Test test = new Test();
String[] ss = test.foo();
for(int i=0;i<ss.length;i++){
System.out.println(ss[i]);
}
}
}
dreamover 2006-04-12
  • 打赏
  • 举报
回复
支持
believefym(暮色,miss,迷失,miss。。。)

byte[] MyArry;
MyArry=Function();

写法是正确的
这样用的时候注意的是Function()体里要有为返回值新申请的堆空间
Camelh 2006-04-12
  • 打赏
  • 举报
回复
如果要实现数组内容拷贝的话,该用System.arraycopy();
Camelh 2006-04-12
  • 打赏
  • 举报
回复
byte[] MyArry;
MyArry=Function();
这个不是数组内容的拷贝,而是定义的一个数组引用,它指向Function()返回的数组;所以这样也能得到Function()函数中产生的数组;我猜believefym(暮色,miss,迷失,miss。。。) 可能是这个意思;
qiang029 2006-04-12
  • 打赏
  • 举报
回复
believefym(暮色,miss,迷失,miss。。。)
这位人兄,把你试的代码贴出来让大家学习一下呀,别光说别人试,我相信你一定试过,对吧!!!
sail988 2006-04-12
  • 打赏
  • 举报
回复
@#¥%……
believefym 2006-04-12
  • 打赏
  • 举报
回复
在数组返回值时不能直接由数组直接赋值!那就是最大的错误,老师讲的时候特别强调了这一点!应该像 “believefym(暮色,miss,迷失,miss。。。) ”那样的处理!!
------------------
这位兄弟说话前看清楚,我的观点可不是这样的
只能说你们老师在误人子弟,行不行自己试试不就知道了
old_man 2006-04-12
  • 打赏
  • 举报
回复
在数组返回值时不能直接由数组直接赋值!那就是最大的错误,老师讲的时候特别强调了这一点!应该像 “believefym(暮色,miss,迷失,miss。。。) ”那样的处理!!
believefym 2006-04-11
  • 打赏
  • 举报
回复
两个数组能直接用=号来符值吗???这是错误的!

想用返回数组类型的方法,把返回的数组里面的信息放入另一个数组中,应该用循环
如:

byte[] MyArry=new byte[100];

for(int i=0;i<(Function().length;i++){
MyArry[i]=Function()[i];
}
这样MyArry这个数组中才会有值
----------------
这位兄弟又是问号,有时叹号,不知道是不是从c那边过来的,
我现在明确告诉你,java里数组赋值就是可以这样,不信自己试
yuzl32 2006-04-11
  • 打赏
  • 举报
回复
LZ 发觉哪里不对头啊?
qiang029 2006-04-11
  • 打赏
  • 举报
回复
两个数组能直接用=号来符值吗???这是错误的!

想用返回数组类型的方法,把返回的数组里面的信息放入另一个数组中,应该用循环
如:

byte[] MyArry=new byte[100];

for(int i=0;i<(Function().length;i++){
MyArry[i]=Function()[i];
}
这样MyArry这个数组中才会有值
lydvqq 2006-04-11
  • 打赏
  • 举报
回复
如果觉得有问题,还是贴代码吧
believefym 2006-04-11
  • 打赏
  • 举报
回复
我这样使用该函数为何得到的数组内容不对
------
是不是你理解错了,内容是对的呢,注意是byte
lgh2008 2006-04-11
  • 打赏
  • 举报
回复
byte[] MyArry;
MyArry=Function();
这样写是正确的, 把你的代码贴出来看看,我估计是其他地方有问题。

62,612

社区成员

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

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