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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马志军 中级黑马   /  2013-1-1 20:17  /  2356 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Arrays类是操作数组的工具类,但看到Array类也是操作数组,只是它操作的数组都是Object类型的,数组里存的都是对象。
但是存对象不是有集合了吗,这个类现在还用得到吗?如果还用,是什么情况使用?
又发现它在java.lang.reflect包里,它跟反射又有什么关系?是操作内存中字节码文件的?

评分

参与人数 1技术分 +1 收起 理由
崔政 + 1 神马都是浮云

查看全部评分

9 个回复

倒序浏览
Java 中的数组用起来很方便,每个数组都有一个 length 属性。Java 中的数组其实也是一个 Object 对象,但是在 J2SE API 中有 java.lang.reflect.Array 这个反射类,它提供的用于数组的静态方法太多了,里面的 getLength() 正是用于返回数组长度的,以下是测试:

import java.lang.reflect.*;

public class ArrayTest
{
public static void main(String args[])
{
int i_l1 = args.length; // 直接用数组对象的 length 属性
int i_l2 = Array.getLength(args); // getLength() 是 Array 反射类的静态方法
System.out.println("args.length = " + i_l1);
System.out.println("Array.getLength(args) = " + i_l2);
}
}

评分

参与人数 1技术分 +1 收起 理由
崔政 + 1

查看全部评分

回复 使用道具 举报
关注一下,我也不知道,跟帖学习
回复 使用道具 举报
给你介绍一个Arrays类的应用小例子,或许对你有所帮助
[0,1,2,3,4,5] 按字符串数组输出,怎么输出?
  1. String s = Arrays.toString(arr);
复制代码
.
回复 使用道具 举报
好像有点明白了,Array类反射里用到的,比如通过字符串动态创建数组并操作数组
Object arr = Array.newInstance(String.class,5);
回复 使用道具 举报
你好,Array类提供了一系列静态方法来动态创建和访问java数组。
通过newInstance()方法动态创建
public static Object newInstance(Class<?> componentType,int length) throws NegativeArraySizeException创建一个具有指定的组件类型和长度的新数组。调用此方法等效于创建如下数组:
int[] x = {length};
Array.newInstance(componentType, x);

另外提供了set和get等方法动态访问数组。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马