黑马程序员技术交流社区
标题:
Object接收问题
[打印本页]
作者:
_王涛
时间:
2013-3-28 14:44
标题:
Object接收问题
本帖最后由 _王涛 于 2013-3-28 17:18 编辑
我们知道Object几乎可以接收任何类型参数,那么我们在给一个函数传递一个int类型的数组后,如何打印输出数组中的所有值呢?
我给出数组和要打印的函数如下:
int arr[]={12,32,11,33,45};
public static void printInt(Object arr){ ...... }
求解中??
作者:
魏福伟
时间:
2013-3-28 15:05
public static void printInt(Object arr)
{
for(int i = 0; i < ((int[])arr).length; i++)
{
System.out.print(((int[])arr)[i] + " ");
}
System.out.println();
}
把object向下类型转换成int[]
作者:
胡帅冰
时间:
2013-3-28 15:15
第一:你的数组定义是错误的。正确的是:int [] arr={12,32,11,33,45};
第二:就是在输出的时候需要强制转换为int [] 型的。object接收的只是数组中的首位元素的内存地址,只有强制转换为int [] 型的 通过循环输出才行。
作者:
蔡陶军
时间:
2013-3-28 15:28
这道题在视频中毕老师也讲过的
只要把Object向下转型 转成int[]就ok了
我把你的代码修改了下 如下:
public class Today {
public static void printInt(Object cc)
{
int[] bb=(int[])cc;
for(int i=0;i<bb.length;i++)
{
System.out.print(bb[i]+“、”);
}
}
public static void main(String[] args) {
int[] arr={12,32,11,33,45};
printInt(arr);
}
}
复制代码
作者:
刘海陆
时间:
2013-3-28 15:37
int
[]
arr= {12,32,11,33,45};
public static void printInt(Object arr)
{
int[] a = (int[])arr;//把arr强制转化成int[]数据类型。
//下面就是对数组进行遍历了。
System.out.print("[");
for(int x = 0 ; x < a.length ; x++)
{
if (x != a.length-1)
System.out.print(a[x]+" ,");
else
System.out.print(a[x]+"]");
}
}
注意一下,你的arr 数组定义错了,应该有[] ,我用红色的标记了
作者:
黄玉昆
时间:
2013-3-28 17:18
如果你觉得自己写循环比较麻烦的,可以使用Arrays这个工具类中的toString()方法,这个方法可以接收很多的数组类型,直接打印如:System.out.println(Arrays.toString(arr));,具体请参考Arrays的API文档
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2