一、目录
- 创建对象的方式
- 利用setAccessible操作属性
- 利用setAccessible操作方法
二、创建对象的方式
- 方式一:调用类中的public修饰的无参构造器。
相关方法:newInstance:调用类中的无参构造器,获取对应类的对象。 - 方式二:调用类中的指定构造器。
相关方法:- getConstructor(Class…clazz):根据参数列表,获取对应的构造器对象。只获取public的构造器。
- getDecalaredConstructor(Class…clazz):根据参数列表,获取对应的构造器对象。获取所有构造器。
Constructor类相关方法:
- setAccessible:作用是开启和关闭取消访问安全检查,true为关闭,false为开启。
- newInstance(Object…obj):调用构造器
package com.javareflection;
import java.lang.reflect.Constructor;
public class Person {
public static void main(String[] args) throws Exception{
// 1. 先获取User类的Class对象
Class<?> aClass = Class.forName("com.javareflection.User");
// 2. 通过无参构造器创建对象实例
Object o = aClass.newInstance();
System.out.println(o);
// 3. 通过public的有参构造器创建对象实例
Constructor<?> constructor = aClass.getConstructor(String.class);
Object ton = constructor.newInstance("Ton");
System.out.println(ton);
Constructor<?> constructor1 = aClass.getDeclaredConstructor(int.class, String.class);
constructor1.setAccessible(true

本文深入探讨Java反射机制,包括两种创建对象的方法:调用public构造器和指定构造器,以及如何使用setAccessible进行属性和方法的访问控制。通过setAccessible可以绕过访问权限检查,实现对非public成员的操作。
最低0.47元/天 解锁文章
2158

被折叠的 条评论
为什么被折叠?



