java反射方式创建代码详解
在谈到实例的时候,很多人对这个概念还不能说出所以然。其实实例就是一个具体的对象,像我们之前学习的类、数组都可以创建实例。反射相对而言也是比较抽象的概念,所以我们是能够把它实例化的。下面简单对实例进行了解,然后分别带来无参和有参的反射实例实例化方法。
1.实例说明
new 一个对象是实例,可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在这个角度上来讲是等价的。
2.创建空参的实例
使用Class对象的newInstance()方法来创建Class对象对应类的实例。
//原始:new的时候,先根据被new的类的名称找寻该类的字节码文件,并加载进内存,
//并创建该字节码文件对象,并接着创建该字节文件对应的Person对象。
Person p = new Person(); //反射:找寻该类的名称,并加载进内存,并产生Class对象 //在产生类的对象 Strint className = "com.example.hgx.Person"; Class clazz = Class.forName(className); Object obj = clazz.newInstance();
3.创建带参数的实例
这时要通过Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建实例。
class Person { public String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } //获取Person类带一个(String,int)参数的构造器 Strint className = "com.example.hgx.Person"; Class clazz = Class.forName(className); Constructor constructor = clazz.getConstructor(String.class,int.class);
内容扩展:
反射定义
反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有属性和方法。
反射的作用
- 在运行时判断任意一个对象所属的类。
- 在运行时判断任意一个类所具有的成员变量和方法。
- 在运行时任意调用一个对象的方法
- 在运行时构造任意一个类的对象
到此这篇关于java反射方式创建代码详解的文章就介绍到这了,更多相关java反射方式创建实例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java分析Lambda表达式Stream流合并分组内对象数据合并
Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的弊端,Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑2022-12-12IDEA使用学生邮箱无法注册问题:JetBrains Account connection error: 拒绝连接
这篇文章主要介绍了IDEA使用学生邮箱无法注册问题:JetBrains Account connection error: 拒绝连接,文中通过图文及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)
打印日志的在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别、打印形式和日志的输出路径,下面看一个示例吧2014-01-01Spring Cloud 中@FeignClient注解中的contextId属性详解
这篇文章主要介绍了Spring Cloud 中@FeignClient注解中的contextId属性详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09
最新评论