获取反射类型的四种方式.1.Class.forName();2.Person.class;3.person.getClass();4.classLoader.loadClass()
反射 获取 方式 类型 Class 四种 ClassLoader
2023-09-27 14:19:49 时间
package com.hrf.reflect02;
public class ReflectTest {
public static void main(String[] args) throws Exception {
// 动态创建对象的过程就叫反射.
way01();
way02();
way03();
way04();
}
// 构造反射的三种方式
// 1.
public static void way01() throws Exception {
// 获取反射的类型
Class<?> c = Class.forName("com.hrf.reflect02.Person");
// 创建对象
Person person = (Person) c.newInstance();
System.out.println(person.getUsername());
}
// 2.
public static void way02() throws Exception {
// 获取反射的类型
Class<?> c = Person.class;
// 创建对象
Person person = (Person) c.newInstance();
System.out.println(person.getUsername());
}
// 3.
public static void way03() throws Exception {
// 通过对象方式获取反射的类型
Person person = new Person();
Class<? extends Person> c = person.getClass();
System.out.println(c);
}
// 4.
public static void way04() throws Exception {
// 通过类加载器
ClassLoader classLoader = new ClassLoader() {
};
// 获取反射的类型
Class<?> loadClass = classLoader.loadClass("com.hrf.reflect02.Person");
// 创建对象newInstance()创建实例.
Person person = (Person) loadClass.newInstance();
System.out.println(person.getUsername());
}
}
class Person{
private String username = "张三";
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
相关文章
- java核心技术卷I-反射
- 反射&获取方法的值&动态执行set方法
- 代理,反射,AOP
- [ python ] 反射及item系列
- 反射
- 反射学习2-通过反射机制动态获取属性的值模拟Struts的自动赋值
- 【 java 反射上篇】java反射机制不难吧?来看看这篇
- SpringIoc 和 工厂模式(反射实现)
- 【EventBus】事件通信框架 ( 订阅方法注册 | 检查订阅方法缓存 | 反射获取订阅类中的订阅方法 )
- Android中用反射获取View
- GO 记录 : 反射的使用 : 获取 结构体字段,设置结构体字段(1)
- 2019-4-16-C#-使用反射获取私有属性的方法
- C# 反射调用私有事件
- C# 使用反射获取私有属性的方法
- win10 uwp 反射
- Java中的反射(通过反射获取类的结构、invoke方法、获取注解)
- 如何防止单例模式被JAVA反射攻击