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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亭 中级黑马   /  2012-5-22 00:33  /  1697 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一直有个疑惑,数组类型到底是啥样子的呢?里面的length属性是咋定义的,除了length外还有别的属性没?
我的意思是,比如有:
String str = "abc";
int[] arr = new int[3];
我想看看str 、arr 的类型
  System.out.println(str.getClass());
  System.out.println(arrI.getClass());
结果为
class java.lang.String
class [I

这个结果大家也都明白,String就不说了,[I 表示int的数组
问题是如果我想查看String这个类的更多信息,我可以去API文档中找java.lang,也可以直接去看源文件找
但是[I 这玩意该怎么找呢,如果我想看看它下面的length属性是怎么定义的又该如何呢
换成别的类型数组又是什么状况呢

4 个回复

倒序浏览
我想,这个问题。。。你只能看源代码了
回复 使用道具 举报
  1. package it.itcast.demo;

  2. import java.lang.reflect.Array;
  3. import java.util.List;
  4. import java.util.Arrays;

  5. public class Test {
  6.         public static void main(String[] args) {
  7.                 //因为int为今本类型,无法作为引用,但是可以向上转型为Object,
  8.                 //new int[]{1,2,3}====>new Object[]{new int[]{1,2,3}}
  9.                 //然后使用Arrays类中的asList将其变成一个集合;
  10.                 int[] b =new int[]{222,33,4,5};
  11.                 List allList = Arrays.asList(new Object[] { new int[] { 1, 2, 3 } });
  12.                 //下面的操作都按照集合来操作
  13.                 int size = allList.size();
  14.                 //因为在集合中只有一个对象,所以长度为1,
  15.                 System.out.println("集合的长度:"+size);
  16.                 //想得到数组中的内容;使用Array类来进行操作;
  17.                 Object obj = null;
  18.                 obj =b;
  19.                 print(obj);
  20.                
  21.                
  22.         }
  23.         public static void print(Object obj){
  24.                 Class clazz =obj.getClass();      //通过反射获得字节码
  25.                 if(clazz.isArray()){                //判断是不是数组
  26.                         int len  = Array.getLength(obj);       // 使用Array获得
  27.                         for(int i = 0 ; i<len;i++){
  28.                                 System.out.print(Array.get(obj,i)+"、");   //打印出内容
  29.                         }
  30.                         
  31.                 }else{
  32.                         System.out.println(obj);
  33.                 }
  34.         }
  35.         

  36. }
复制代码
回复 使用道具 举报
Fc10232 发表于 2012-5-22 01:48

看了张老师的视频作答的  希望对你有帮助-------------------共勉  加油
回复 使用道具 举报
哇哇 。。。。今天把日记整理了一下。。。今天差不多了  睡了  大家晚安·····················
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马