黑马程序员技术交流社区

标题: Array类是作什么用的? [打印本页]

作者: 马志军    时间: 2013-1-1 20:17
标题: Array类是作什么用的?
Arrays类是操作数组的工具类,但看到Array类也是操作数组,只是它操作的数组都是Object类型的,数组里存的都是对象。
但是存对象不是有集合了吗,这个类现在还用得到吗?如果还用,是什么情况使用?
又发现它在java.lang.reflect包里,它跟反射又有什么关系?是操作内存中字节码文件的?
作者: 张会文    时间: 2013-1-1 20:43
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);
}
}


作者: 郝福明    时间: 2013-1-1 20:57
关注一下,我也不知道,跟帖学习
作者: 嘿嘿小学徒    时间: 2013-1-1 21:41
给你介绍一个Arrays类的应用小例子,或许对你有所帮助
[0,1,2,3,4,5] 按字符串数组输出,怎么输出?
  1. String s = Arrays.toString(arr);
复制代码
.

作者: 马志军    时间: 2013-1-2 09:43
好像有点明白了,Array类反射里用到的,比如通过字符串动态创建数组并操作数组
Object arr = Array.newInstance(String.class,5);
作者: 何竹冬    时间: 2013-1-3 15:14
你好,Array类提供了一系列静态方法来动态创建和访问java数组。
通过newInstance()方法动态创建
public static Object newInstance(Class<?> componentType,int length) throws NegativeArraySizeException创建一个具有指定的组件类型和长度的新数组。调用此方法等效于创建如下数组:
int[] x = {length};
Array.newInstance(componentType, x);

另外提供了set和get等方法动态访问数组。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2