JAVA反射机制详细总结

本文深入探讨了Java反射机制,包括定义、使用步骤、获取Class对象的三种方式,以及如何获取类的方法、属性和构造器。通过反射,可以在运行时动态地获取类的信息并调用对象方法,为Java开发提供了强大的灵活性。

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

1.什么是反射机制?

java中的反射机制是指在运行的状态中,对于任意一个类都能知道这个类所有的属性和方法,并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能就是java的反射机制。

2.java反射使用的步骤

1.获取想要操作的类Class对象,它是反射的核心,通过Class对象我们可以任意调用类的方法。
2.调用Class类中的方法,既就是反射的使用阶段。
3.使用反射API来操作这些信息。

3.获取Class对象的3种方法

我们首先创建一个person的对象:

public class Person {
	private String name = "小米";
	private int age = 15;	
	public void test(String str) {
		System.out.println(str);
	}
	public void test2() {
		System.out.println("tset22");
	}
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public Person() {
		super();
	}
}

1.第一种调用person 对象的getClass()方法

Person person = new Person();
Class m2 = person.getClass();

2.调用person 对象的class属性来获取该类对应的Class对象

Class  clazz = Person.class;

3.使用class类中的forname()静态方法(最安全,性能最好)

Class<?> clazz3 = Class.forName("reflex.Person");

4.获取类中所有的方法、成员属性、所有构造方法

1.获取Person 类中所有方法

Method[] methods = m2.getDeclaredMethods();
		for (Method method : methods) {
			System.out.println(method);
		}

2.获取Person类中所有成员属性

Field[] fields = m2.getDeclaredFields();
		for (Field field : fields) {
			System.out.println(field.toString()); 
		}

3.获取person类中所有构造方法

Constructor[] constructors = m2.getDeclaredConstructors();
		for (Constructor constructor : constructors) {
			System.out.println(constructor);
		}

5.调用对象的方法

		Method method = clazz.getMethod("test2");
		Method method2 = clazz.getMethod("test",String.class);
		method.invoke(clazz.newInstance());
		method2.invoke(clazz.newInstance(),"dddd"); 

测试结果:
在这里插入图片描述
感谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值