1.什么是反射

  2.反射的运用

  3.总结

 

一、什么是反射

  反射:反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力   ----by  维基百科

  java中的反射也是如此,利用反射的原理我们可以在程序运行时候的能够动态的创建对象,并且调用对象的方法和属性

  它的作用是:1.在运行时判断任意一个对象类型

        2.在运行时候能够构造任意一个对象

        3.在运行时候判断一个类的属性和方法

  反射在实际开发中的运用主要是在编写第三方jar包中比较多。我们可以运用反射对程序进行反编译。

二、反射的运用

  上面涉及到反射是在java程序运行时才出现的。我们知道java程序运行的机制是先编译再运行。

  编译后我们会得到一个以.class结尾的字节码文件。我们要运行一个java程序,只需要这个文件+JVM虚拟机即可

  那么就简单了解一下jvm的类加载机制(类的生命周期)吧

java学习----反射

 

  

  在java中反射的核心类是Class类

  接下来就看看反射的核心类Class吧。

java学习----反射

   创建反射(Class)对象有三中方法

  1.Class.forName(全路径名);

    2.类型  对象名 = new 类型();

   对象名.getClass();

  3.类名.class;

 ps:该类型不管创建多少个对象,通过对象

获取的Class对象,都是同一个。

下面看一个反射的实例吧:

  

package com.demo.forname;

public class Student {
    private String name;
    private Integer id;
    public int age;
    private Student(int id){
        this.id=id;
    }
    public Student(){
        System.out.println("执行了无参的构造方法");
    }
    public Student(String name, Integer id, int age) {
        super();
        this.name = name;
        this.id = id;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [name=" + name + ", >;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
}
需要进行反射操作的类

相关文章:

  • 2021-08-13
  • 2021-07-18
  • 2021-08-13
  • 2022-01-02
  • 2021-09-01
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-10
  • 2020-12-27
  • 2021-12-14
  • 2021-12-30
  • 2021-12-24
  • 2021-08-21
  • 2021-09-10
相关资源
相似解决方案