`
foryougeljh
  • 浏览: 116554 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

反射基础Class类

 
阅读更多

Class 类的实例表示正在运行的 Java 应用程序中的类和接口。Class是程序中各个java类和接口的统称。
众多的人-->Person,众多的java对象-->Class

每个类被加载后, 系统就会为该类生成一个对应的 Class 对象, 通过该 Class 对象就可以访问到 JVM 中的这个类。


Java 程序中获得Class 对象通常有如下三种方式:
1.使用 Class 的 forName() 静态方法
2.调用某个类的 class 属性 (无须调用方法, 性能更好)
3.调用某个对象的 getClass() 方法

一旦获取了某个类的 Class 对象之后, 程序就可以调用 Class 对象的方法来获得该对象和该类的真实信息了


Class类常见的方法

newInstance() :创建此 Class 对象所表示的类的一个新实例。
isPrimitive() :判定指定的 Class 对象是否表示一个基本类型。
isArray() :判定此 Class 对象是否表示一个数组类。
getPackage() :获取此类的包。
getName() :以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

getInterfaces() :确定此对象所表示的类或接口实现的接口。
forName(String className) :返回与带有给定字符串名的类或接口相关联的 Class 对象

java中9个预定义的Class实例对象
基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)

和关键字 void 也表示为 Class 对象。

public class Test {
public static void main(String[] args) throws Exception{
/**
* Class代表一份字节码,一个对象是该类字节码产生的一个实例
* 使用new关键字:类的装载,连接,初始化一次性完成了。
* 使用Class.forName:默认的情况下是类装载、链接和初始化的,
* 相当于Class.forName(className, true, currentLoader)(其中的true和false是管是否初始化的)。
* 如果是true的,那么装载、连接、并初始化;如果false,仅仅装载和连接。
*/
String s = "";
Class cls1 = s.getClass();//方式1
Class cls2 = String.class;//方式2
Class cls3 = Class.forName("java.lang.String");//方式3
System.out.println(cls1==cls2);//true
System.out.println(cls2==cls3);//true
System.out.println(cls1.isPrimitive());//false
System.out.println(int.class.isPrimitive());//true
System.out.println(int.class==Integer.class);//false
System.out.println(Integer.TYPE==int.class);//true
System.out.println(int[].class.isPrimitive());//false
System.out.println(int[].class.isArray());//true
}
}

分享到:
评论

相关推荐

    Java中通过Class类获取Class对象的方法详解

    Java中获取Class对象是Java基础知识中的一个重要部分,通过Class类可以获取Class对象,Class对象是Java虚拟机在加载类时自动构造的。下面将详细介绍通过Class类获取Class对象的三种方式。 方式1:通过Object类的...

    反射+Class+获取和操作+入门

    Class类是Java反射机制的核心,它代表了运行时的类信息。本资源将引导初学者了解如何使用反射和Class类进行类的获取和操作。 首先,让我们了解如何获取Class对象。在Java中,有三种主要方式来获取Class对象: 1. ...

    JAVA反射机制的入门代码

    总的来说,"JAVA反射机制的入门代码"是初学者理解Java反射机制的好教材,通过它,你可以学习如何动态地操作Java类,提高代码的灵活性,并掌握处理`properties`文件的基础方法。在深入学习和实践中,你将进一步理解...

    java 反射Reflection;Class类

    反射机制的核心在于`java.lang.Class`类,它是Java反射的基础。此外,`java.lang.reflect`包中的`Method`、`Field`和`Constructor`类分别代表类的方法、字段和构造器。 2. `Class`类: `Class`类是所有Java类的元...

    java.lang.Class类

    2. 使用Class类可以实现类的反射机制,动态地加载和使用类。 3. 使用Class类可以实现对象的克隆和序列化。 Java.lang.Class类是Java语言中一个非常重要的类,它的理解和掌握是学好Java的基础。通过掌握Class类,...

    JAVA基础-反射-枚举

    ### JAVA基础-反射-枚举知识点详解 #### 一、反射概述 反射是Java语言提供的一种能在运行时分析类和对象的能力。通过反射,我们可以在程序运行时动态地获取类的信息(如类名、方法、构造函数等)并操作这些信息。 ...

    2020老杜最新Java零基础进阶视频教程-反射机制课件

    Java的反射机制是通过`java.lang.reflect`包中的类和接口实现的,主要包括`Class`、`Constructor`、`Method`和`Field`等。`Class`类是所有类的元类,它包含了关于类的所有信息,包括类名、构造方法、方法、字段等。...

    【IT十八掌徐培成】Java基础第25天-01.反射基础.zip

    反射基础”这一课程中,徐培成老师会深入讲解这个核心概念。 反射的基石是`java.lang.Class`类,它代表了Java运行时的类型信息。通过`Class`对象,我们可以获取类的构造器、方法、字段等信息,甚至可以在运行时动态...

    java反射,获取所有属性、方法以及List集合类

    首先,让我们了解Java反射的基础概念。在Java中,`java.lang.Class`类代表运行时的类信息。我们可以使用`Class.forName()`方法或者对象的`getClass()`方法来获取`Class`对象。一旦我们有了`Class`对象,就可以进一步...

    JAVA基础--JAVA中的反射机制详解

    在上面的代码中,首先通过 `Class.forName(className)` 获取该类的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该类的静态方法,最后通过 `method.invoke(null...

    Java 基础(7-8) - 反射机制详解.pdf

    一、反射基础 在 Java 中,反射机制是通过 Class 类实现的。Class 类是 java.lang 包中的一个类,存在于 JDK 中。Class 类的实例表示 Java 应⽤运⾏时的类(class、enum)或接⼝(interface 和 annotation)。每个 ...

    类加载机制及反射

    反射的核心类有`Class`、`Constructor`、`Field`和`Method`。 1. **Class对象**:每个类在运行时都有一个对应的`Class`对象,它包含了类的所有信息。我们可以通过`Class.forName()`或`object.getClass()`获取到。 ...

    大学课程讲义-Java基础-反射.pptx

    本文将详细介绍Java基础中的反射机制,包括Class类、ClassLoader类、Constructor、Method、Field类的用法,以及动态代理机制。 Class类 Class类是Java中一个特殊的类,用于描述类本身的信息。每个类在JVM中都有一...

    尚硅谷_佟刚_Java基础_反射.pdf

    根据提供的文件信息,我们将详细解析Java基础中关于反射的相关知识点,包括Class类的理解、Java的类加载机制、ClassLoader的使用、反射机制的概念、Constructor、Method和Field类的用法以及动态代理的理解和掌握。...

    老生常谈反射之Class类的使用(必看篇)

    Class类是Java反射机制的基础,它代表了Java中的每一个类型。每个Java类在内存中都有一个对应的Class对象,这个对象包含了该类的所有信息,如类名、构造函数、方法、字段等。Class对象可以通过以下三种方式获取: 1...

    Java的反射机制讲解案例代码 Class类、 获取类的结构信息:构造函数、方法和字段,动态创建对象、调用方法和设置属性

    适用于有一定Java编程基础的开发人员,希望了解和应用Java反射机制的使用者。 使用场景及目标 使用反射机制的典型场景包括以下几个方面: 在运行时动态加载和创建类对象。 通过反射调用对象的方法和访问对象的字段...

    java反射入门

    获取Class对象是反射的基础,可以通过以下几种方式: a) 从对象的实例获取:`Class c = mystery.getClass();` b) 从子类的实例获取:`Class c = t.getClass();` 其中 `t` 是某个子类的实例。 c) 知道类名,可以...

    实体类反射非空赋值,AjaxJson工具类

    Java反射API提供了Class类,它是所有类的元类,通过Class对象我们可以获取类的信息,包括构造函数、方法、字段等。例如,我们可以使用`Class.forName()`方法加载类,然后通过`getDeclaredFields()`获取类的所有声明...

    java基础之反射讲解

    - **Class类**用于表示`.class`文件,它是所有Java类的根对象。 - **获取Class对象的方式**: - `类名.class`:推荐使用这种方式。 - `对象.getClass()`:对于已有的对象,可以直接使用这个方法。 - `Class.for...

Global site tag (gtag.js) - Google Analytics