欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java反射方式创建代码详解

程序员文章站 2022-03-19 14:55:03
在谈到实例的时候,很多人对这个概念还不能说出所以然。其实实例就是一个具体的对象,像我们之前学习的类、数组都可以创建实例。反射相对而言也是比较抽象的概念,所以我们是能够把它实例化的。下面简单对实例进行了...

在谈到实例的时候,很多人对这个概念还不能说出所以然。其实实例就是一个具体的对象,像我们之前学习的类、数组都可以创建实例。反射相对而言也是比较抽象的概念,所以我们是能够把它实例化的。下面简单对实例进行了解,然后分别带来无参和有参的反射实例实例化方法。

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 反射方式