Java反射

本文介绍了Java反射机制的概念,其允许程序在运行时动态获取类的信息并调用其方法和属性。通过反射,可以实现类的动态加载、对象的创建及方法的调用。详细讲解了获取类对象、构造方法、属性和方法的反射API,并提供了通过`Class.forName()`、`Class`的静态方法以及对象的`getClass()`创建类对象的实例。最后,展示了如何通过反射调用无参构造方法创建对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定义

Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制

二、作用

与Java虚拟机相反的功能,即为(反编译)。class——》java
通过反射机制访问Java对象的属性,方法,构造方法等
三、反射常用API

1.获取类对象:java.lang.class (一般而言有三种方法)
2.获取类对象的构造方法:java.lang.reflext.Constructor(目的是为了创建新的对象(有参的))
3. 获取类对象的属性:java.lang.reflect.Field(这里我们可以通过类型来展示所有属性再一一进行命名)
4.获取类对象的方法:java.lang.reflect.Method(获取方式与属性类似)
5.java.lang.reflect.Modifer(一般不用)

四、利用反射创建类的对象

首先创建一个类
public class User{
        private Integer id;
        private String name;
        ...(省略getter,setter和构造方法的创建)
        public void run(){
        ...(省略方法体的创建)
        }
}
创建类的对象的三种方法
1.通过jdk中自带的方法forName()
        Class ez1=Class.forName("cn.kgc.com.User");
2.第二种方法通过所有类自带的属性创建对象
        Class ez2=User.class;
3.第三种,通过该类创建的对象(每个对象都有的getClass()方法)来进行反编译
        User user=new User();
        Class ez3=user.getClass();

五、通过反编译获得的类来创建对象(即承接上一步的继续步骤)
        利用反射创建类的对象,(编译而来的类中有无参构造方法的时候)可调用newInstance()方法来创建新的对象。
        Class c=Class.forName("cn.kgc.com.User");
        Object o=c.newInstandce();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值