A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© _王涛 中级黑马   /  2013-3-28 14:44  /  1887 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 _王涛 于 2013-3-28 17:18 编辑

我们知道Object几乎可以接收任何类型参数,那么我们在给一个函数传递一个int类型的数组后,如何打印输出数组中的所有值呢?
我给出数组和要打印的函数如下:
  int arr[]={12,32,11,33,45};
  public static void printInt(Object arr){ ...... }

求解中??
     

评分

参与人数 1黑马币 +12 收起 理由
张熙韬 + 12

查看全部评分

6 个回复

倒序浏览

回帖奖励 +2

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[]

评分

参与人数 1黑马币 +12 收起 理由
张熙韬 + 12

查看全部评分

回复 使用道具 举报
第一:你的数组定义是错误的。正确的是:int [] arr={12,32,11,33,45};
第二:就是在输出的时候需要强制转换为int [] 型的。object接收的只是数组中的首位元素的内存地址,只有强制转换为int []  型的 通过循环输出才行。

评分

参与人数 1黑马币 +9 收起 理由
张熙韬 + 9

查看全部评分

回复 使用道具 举报
这道题在视频中毕老师也讲过的

只要把Object向下转型 转成int[]就ok了

我把你的代码修改了下 如下:
  1. public class Today {
  2.         public static void printInt(Object cc)
  3.         {
  4.                 int[] bb=(int[])cc;
  5.                 for(int i=0;i<bb.length;i++)
  6.                 {
  7.                         System.out.print(bb[i]+“、”);
  8.                 }
  9.                
  10.         }
  11.         public static void main(String[] args) {
  12.                 int[] arr={12,32,11,33,45};
  13.                 printInt(arr);
  14.         }
  15. }
复制代码

点评

恩,谢谢,看来我的进度有点慢了  发表于 2013-3-28 17:11

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
  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:12
回复 使用道具 举报
蔡陶军 发表于 2013-3-28 15:28
这道题在视频中毕老师也讲过的

只要把Object向下转型 转成int[]就ok了

牛X呀~~~进步很快嘛~~~
回复 使用道具 举报
黄玉昆 黑马帝 2013-3-28 17:18:20
7#
如果你觉得自己写循环比较麻烦的,可以使用Arrays这个工具类中的toString()方法,这个方法可以接收很多的数组类型,直接打印如:System.out.println(Arrays.toString(arr));,具体请参考Arrays的API文档
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马