关闭
当前位置:首页 - 美国在线 - 正文

设计师,Java 数组反射,ppt模板

admin 2019-05-05 291°c

咱们能够运用Class类中的isArray()办法来查看类是否是数组。

咱们能够创立一个数组,运用反射经过读取和修正其元素的值 java.lang.reflect.Array 类。

Array类的 getLength()办法获取数组的长度。

Array类中的一切办法都是静态的。

要创立数组,请运用Array类中的重载静态办法newInstance()。

Object newIn毛岸英stance(Class
Object newInstance(Class

第一个办法依据指定的组件类型和数组长度创立一个数组。

第二个版别创立指定组件类型和尺度的数组。

newInstance()办法的回来类型是Object,咱们需求将它转换为实践的数组类型007数字图书馆。

下面的代设计师,Java 数组反射,ppt模板码创立一个长度为5的 int 数组。

int[] ids = 设计师,Java 数组反射,ppt模板(int[])Array.newInstance(int.class, 5);

要创立一个维度为5乘3的int数组。

int[][] matrix = (int[][])Array.newInstance(int.class, 5, 3);

比如

以下代码显现了怎么动态创立数组并操作其元素。

import java.lang.reflect.Array;
public class Main {
public static void main(String[] args) {
try {
Object my = Array.newInstance(int.class, 2);
int n我是演说家1 = Array.getInt(my, 0);
int泡泡 n2 = Array.getInt(my, 1);
System.out.prin设计师,Java 数组反射,ppt模板tln("n1 = " + n1 + ", n2=" + n2);
Array.set(my, 0, 11);
Array.set(my, 1, 12);
n1 = Array.getInt(my, 0);
n2 = Array.getInt(my, 1);
System.out.println("n1 = " + n1 + ", n2=" + n2);
} catch (NegativeArraySizeException | I骷髅llegalArgumentExc老子道德经eption
| ArrayIndexOutOfBo毕赣undsException 阿娇13分钟e) {
System.out.println(e.getM柳选植essage());
}
}
}

上面的代码生成以下成果。

获取数组的维度

Java支撑array数组。

类中的 getComponentType()办法回来数组的元素类型的Class目标。

以下代码阐明了怎么获取数组的维度。

public class Main {
public static void main(String[] a二手卡车rgs) {
int[][][] intArray = new int[1][2][3];
System.out.println("int[]设计师,Java 数组反射,ppt模板[][] dimension is " + getArrayDimension(int周润发图片Array));
}
public static int getArrayDimension(Object array) {
int dimension = 0;
Class c = array.getClass()我的麻辣女友;星空壁纸
if (!c.isArray()) {
throw new IllegalArgumentException("Object is not an array");
}
while (c.isArray()) {
dimension++;
c = c.getComponentType();
}
retlistenurn dimension;
}
}

上面的代码生成以下成果。

打开数组

Java数组是一个固定长度的数据结构。

要扩大数组,咱们能够创立一个更大尺度的数组,并将旧数组元素复制到新数组元素。

以下代码显现怎么运用反射打开数组。

import java.lang.reflect.Arra安奈儿y;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ids = ne谢依霖w int[2];
System.out.println(ids.length);
System.out.println(Arrays.toString(ids));
ids = (int[]) expandBy(i迪拜王子ds, 2);
ids[2] = 3;
System.out.println(ids.length);
System.out.println(Arrays.toString(ids));
}
public static Object expandBy(Object oldArrayvladmodels, int increment) {
Object new粉底液Array = null;
int oldLength = Array.getLength(oldArray);
int newLength = oldLength + increment;
Clas设计师,Java 数组反射,ppt模板s
newArray = Array.newInstance(c.getComponentType(), newLength);
System.arraycopy(old设计师,Java 数组反射,ppt模板Array, 0, newArray, 0, oldLength);
return ne设计师,Java 数组反射,ppt模板wArray;
}
}

上面的代码生成以下成果。

admin 14文章 0评论 主页

相关文章

  用户登录