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反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、对象等的内部信息,包括但不限于类名、方法名、构造器、字段以及它们的元数据。这个机制的核心在于Java.lang.Class类和java....
Java.lang.Class类 Java.lang.Class类是Java语言中一个非常重要的类,它封装了对象和接口的运行时状态。...通过掌握Class类,可以更好地理解Java语言的机制和原理,并且可以更好地应用Java语言来开发各种应用程序。
Java的Class类是Java反射机制的核心,它代表了Java中的每一个类和接口。Class类的主要功能是提供关于类的信息,包括类的结构、属性、方法等。以下是对Java Class类的详细说明: 1. **Class类对象的创建**:在Java中...
总结来说,Java反射提供了对数组的动态操作能力,包括创建数组、设置和获取数组元素、以及处理类中声明的数组字段。这种能力使得代码更加灵活,但也增加了潜在的错误风险,因此在使用时应谨慎并充分测试。
Java反射的核心在于`java.lang.Class`类,它代表了类的信息,通过反射可以获取到类的所有属性、方法、构造器等。例如,以下代码展示了如何使用反射判断一个对象所属的类: ```java A a = new A(); if (a.getClass()...
Java反射机制是Java语言提供的一种强大的工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在上述实例中,我们看到如何利用反射动态地拼接方法名并执行相应的方法,从而避免了大量的if-...
Java中Class类的作用与深入理解 Java中Class类是一个非常重要的类,它提供了许多有用的方法来获取类的信息和创建对象。...Java中Class类的作用是提供类的信息和创建对象,它是Java反射机制的核心部分。
在Java编程语言中,Object类和Class类是两个非常基础且重要的概念,它们构成了Java类层次结构的基础。让我们深入了解一下这两个关键概念。 首先,我们来谈谈Object类。Object类是所有Java类的顶级父类,无论是...
`getClass()`函数是Java反射的核心组成部分,它位于`java.lang.Object`类中,是所有Java对象的公共方法。通过`getClass()`,我们可以获取到对象所属的类的`Class`对象,从而获取类的各种信息。 1. **`getClass()`...
在Java编程中,反射是一个强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。反射机制使得程序能够动态地获取类的信息并执行相关操作,这在处理未知类型的数据或者实现通用代码时非常有用。数组反射是...
- Java中接口只能包含抽象方法,而C++中的虚类可以包含具体的实现。 - Java接口支持多重继承,而C++的虚类不支持多重继承。 **14. 类初始化顺序** - 类初始化顺序遵循自顶向下的原则。 - 先初始化父类,再初始化子...
标题中的"IsAssignableFrom"是Java编程语言中一个重要的方法,主要用在类或接口的类型检查上。这个方法属于java.lang.Class类,用于判断一个类是否可以被赋值给另一个类或者接口。也就是说,如果A类是B类的父类...
- **重载**(Overloading): 同一个类中方法名相同但参数列表不同的方法。 - **重写**(Overriding): 子类覆盖父类的方法,方法签名完全相同。 **6. 匿名内部类中对接口的方法为什么要加public** - 匿名内部类实现...