`

获取类的Class对象的3种途径

 
阅读更多

加载并获取类的Class对象可以通过三种途径:

    Class.forName、实例对象.class(属性)、实例对象getClass()

它们的区别:

    1) Class cl=A.class:JVM将使用类A的类装载器,将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的Class的对象。

   2) Class cl=对象引用o.getClass():返回引用o运行时真正所指的对象(因为:儿子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象。

   3) Class.forName("类名"):装入类A,并做类的初始化。

分享到:
评论

相关推荐

    普通java类中获取pageContext对象

    在探讨如何在普通的Java类中获取`PageContext`对象之前,我们先来了解一下`PageContext`的基本概念及其在JavaWeb开发中的重要性。`PageContext`是JavaServer Pages(JSP)技术的核心类之一,它提供了对当前页面的上...

    游戏编程之单例类与对象工厂的简单介绍与实现

    `GetSingleton` 方法提供了获取单例实例的途径。 【对象工厂】 对象工厂是一种设计模式,用于动态地创建对象,通常基于提供的信息(如枚举值或字符串标识)来决定创建哪种类型的对象。在游戏编程中,对象工厂非常...

    Java反射机制,通过对象访问调用类的私有成员或方法

    获取`Class`对象主要有三种方式:使用`Class.forName()`方法,通过类的`.class`属性,或者直接对类实例使用`getClass()`方法。 例如,如果我们有一个名为`Person`的类,我们可以这样做: ```java Class<?> person...

    java创建对象的五种方法demo

    首先需要获取类的`Class`对象,然后调用`newInstance()`: ```java Class<Person> clazz = Person.class; Person person = clazz.newInstance(); ``` 但请注意,如果类没有默认构造器或者构造器抛出异常,`new...

    Java反射机制的学习

    3. `Class.forName(String className)`:通过类的全限定名(包括包名)动态加载类并返回其`Class`对象。 4. `.class`语法:可以直接在类名后面加`.class`来获取`Class`对象,例如`String.class`。 5. 原始类型对应的...

    Python库 | classy_core-0.2.0.dev20211229-py3-none-any.whl

    提供的压缩包文件“classy_core-0.2.0.dev20211229-py3-none-any.whl”采用Python Wheel格式,这是一种预编译的Python软件包。与传统的源代码包(如.tar.gz或.zip)相比,Wheel包允许用户直接安装而无需编译步骤,...

    Java EE:Reflect 反射技术.docx

    3. 获取Class对象的途径: - 通过类名获取:`类名.class` - 通过对象获取:`对象名.getClass()` - 通过类的全名获取:`Class.forName(完整类名)` - 通过类加载器获取:`this.getClass().getClassLoader().loadClass...

    vc++面向对象入门PDF类_免费电子书

    1. 类(Class):类是对象的模板,定义了一组属性(数据成员)和方法(成员函数),这些属性描述了对象的状态,而方法定义了对象的行为。 2. 对象(Object):对象是类的实例,具有类所定义的属性和行为。 3. 封装...

    工业自动化 TwinCAT3 OOP编程基本例程(方法,接口,属性,实现)

    在TwinCAT3中,方法通常定义在类(Class)内部,用于实现特定的功能。例如,一个名为“MoveMotor”的方法可能用于控制电机的移动。方法可以包含输入参数和返回值,使得代码具有更好的模块化和复用性。在编写TwinCAT3...

    JAVA反射机制动态调用 计算器对象的加法,减法函数;JAVA反射机制修改一个学生对象 的私有数据成员

    - 获取`Student`类的`Class`对象:`Class<?> studentClass = Class.forName("Student");` - 找到`age`字段的`Field`对象:`Field ageField = studentClass.getDeclaredField("age");` - 设置`ageField`为可访问...

    oracle jdbc class12.jar 源码

    Class12.jar源码中的实现类提供了获取这些元数据的途径。 总结,Oracle JDBC Class12.jar源码揭示了Oracle数据库与Java应用程序之间的通信机制,包括连接管理、SQL执行、事务处理、异常处理等多个方面。理解和研究...

    Python类型和对象(20210930180213).pdf

    文件中提到了`<type 'type'>`和`<type 'object'>`,这是Python中的元类(metaclass)和对象的基本类型。元类是“类的类”,即用于创建其他类的类。在Python中,所有的新式类最终都是由`<type 'type'>`这个元类创建的...

    ios 对象私有属性的访问和修改

    另外,Runtime还允许我们通过`objc_getClass`获取类信息,`class_getInstanceVariable`查找实例变量,以及`object_setIvar`和`object_getIvar`来直接设置和获取私有属性的值。这种方法更为直接,但也更加复杂和危险...

    653.651.JAVA基础教程_反射-获取运行时类的构造器结构(653).rar

    当获取到一个类的Class对象后,就可以通过以下方式访问它的构造器: 1. `getConstructors()`:此方法返回一个`Constructor[]`数组,包含类中所有的公共构造器。这些构造器按照声明顺序排列。 2. `...

    class dump,可以反编译OC代码

    需要注意的是,虽然class dump提供了一种便利的学习途径,但滥用反编译工具可能涉及法律问题,尤其是针对商业软件和版权保护的内容。因此,在使用此类工具时,必须确保遵守相应的法律法规,尊重他人的知识产权。 总...

    VC file name class

    在软件开发中,文件名类是一种封装了文件路径、文件名、扩展名等信息的对象。这种类通常提供了一系列的方法来操作和管理这些信息,比如获取或设置文件的基本属性,检查文件是否存在,构建完整路径等。 2. VC++环境...

    反射机制的文档

    // 获取String类的Class对象 Class<?> stringClass = String.class; // 获取String类的toString方法 Method toStringMethod = stringClass.getMethod("toString"); // 创建String对象 String str = "Hello...

    获取订购Music4类源文件代码

    在Java中,类(Class)是面向对象编程的基本单元,它定义了一组相关属性和行为的集合。Music4类可能包含了许多与音乐订购相关的属性(如用户ID、订阅状态、有效期等)和方法(如订阅、续费、取消订阅等)。 为了...

    类的反射机制

    一旦有了Class对象,我们就可以获取类的构造器、方法、字段等信息。 1. **获取构造器**: 使用`getConstructors()` 或 `getDeclaredConstructors()` 方法可以获取类的所有公共构造器或包括私有的所有构造器。然后,...

Global site tag (gtag.js) - Google Analytics