`

Java的反射机制中通过Class类的getComponentType()方法

阅读更多
Java的反射机制中通过Class类的getComponentType()方法可以取得一个数组的Class对象,那么什么是“数组的Class对象”?


所有的JAVA类都继承自object,那数组也不例外。就是说一个数组本身就是一个class,你得到这个数组的CLASS对象后,可以把它转型为数组。

package Ref;

import java.awt.Button;

public class SampleComponentReflection {

	public static void main(String[] args) {
		int[] ints = new int[2];
		Button[] buttons = new Button[6];
		String[][] twoDim = new String[4][5];
		String[] two = new String[4];

		printComponentType(ints);
		printComponentType(buttons);
		printComponentType(twoDim);
		printComponentType(two);
	}

	static void printComponentType(Object array) {
		Class arrayClass = array.getClass();
		String arrayName = arrayClass.getName();
		Class componentClass = arrayClass.getComponentType();
		String componentName = componentClass.getName();
		System.out.println("ArrayClass:"+arrayClass+" ,----ArrayName: " + arrayName + ",------- Component: "
				+ componentName);
	}

}


结果:

ArrayClass:class [I ,----ArrayName: [I,------- Component: int
ArrayClass:class [Ljava.awt.Button; ,----ArrayName: [Ljava.awt.Button;,------- Component: java.awt.Button
ArrayClass:class [[Ljava.lang.String; ,----ArrayName: [[Ljava.lang.String;,------- Component: [Ljava.lang.String;
ArrayClass:class [Ljava.lang.String; ,----ArrayName: [Ljava.lang.String;,------- Component: java.lang.String






分享到:
评论

相关推荐

    Java反射机制2

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、对象等的内部信息,包括但不限于类名、方法名、构造器、字段以及它们的元数据。这个机制的核心在于Java.lang.Class类和java....

    java.lang.Class类

    Java.lang.Class类 Java.lang.Class类是Java语言中一个非常重要的类,它封装了对象和接口的运行时状态。...通过掌握Class类,可以更好地理解Java语言的机制和原理,并且可以更好地应用Java语言来开发各种应用程序。

    认识Java的Class类.doc

    Java的Class类是Java反射机制的核心,它代表了Java中的每一个类和接口。Class类的主要功能是提供关于类的信息,包括类的结构、属性、方法等。以下是对Java Class类的详细说明: 1. **Class类对象的创建**:在Java中...

    java 反射中操作数组

    总结来说,Java反射提供了对数组的动态操作能力,包括创建数组、设置和获取数组元素、以及处理类中声明的数组字段。这种能力使得代码更加灵活,但也增加了潜在的错误风险,因此在使用时应谨慎并充分测试。

    java反射学习资料

    Java反射的核心在于`java.lang.Class`类,它代表了类的信息,通过反射可以获取到类的所有属性、方法、构造器等。例如,以下代码展示了如何使用反射判断一个对象所属的类: ```java A a = new A(); if (a.getClass()...

    java反射拼接方法名动态执行方法实例

    Java反射机制是Java语言提供的一种强大的工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在上述实例中,我们看到如何利用反射动态地拼接方法名并执行相应的方法,从而避免了大量的if-...

    Java中Class类的作用与深入理解

    Java中Class类的作用与深入理解 Java中Class类是一个非常重要的类,它提供了许多有用的方法来获取类的信息和创建对象。...Java中Class类的作用是提供类的信息和创建对象,它是Java反射机制的核心部分。

    JAVA入门-Object类、Class类

    在Java编程语言中,Object类和Class类是两个非常基础且重要的概念,它们构成了Java类层次结构的基础。让我们深入了解一下这两个关键概念。 首先,我们来谈谈Object类。Object类是所有Java类的顶级父类,无论是...

    Java反射学习 getClass()函数应用

    `getClass()`函数是Java反射的核心组成部分,它位于`java.lang.Object`类中,是所有Java对象的公共方法。通过`getClass()`,我们可以获取到对象所属的类的`Class`对象,从而获取类的各种信息。 1. **`getClass()`...

    实例讲解Java编程中数组反射的使用方法

    在Java编程中,反射是一个强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。反射机制使得程序能够动态地获取类的信息并执行相关操作,这在处理未知类型的数据或者实现通用代码时非常有用。数组反射是...

    Java经典面试题+答案(带书签)pdf

    - Java中接口只能包含抽象方法,而C++中的虚类可以包含具体的实现。 - Java接口支持多重继承,而C++的虚类不支持多重继承。 **14. 类初始化顺序** - 类初始化顺序遵循自顶向下的原则。 - 先初始化父类,再初始化子...

    isAssignableFrom

    标题中的"IsAssignableFrom"是Java编程语言中一个重要的方法,主要用在类或接口的类型检查上。这个方法属于java.lang.Class类,用于判断一个类是否可以被赋值给另一个类或者接口。也就是说,如果A类是B类的父类...

    经典的问题

    - **重载**(Overloading): 同一个类中方法名相同但参数列表不同的方法。 - **重写**(Overriding): 子类覆盖父类的方法,方法签名完全相同。 **6. 匿名内部类中对接口的方法为什么要加public** - 匿名内部类实现...

Global site tag (gtag.js) - Google Analytics