java学习----反射
2021-05-18 12:27
标签:技术分享 private jar包 路径 image hide getc none print 目录 1.什么是反射 2.反射的运用 3.总结 一、什么是反射 反射:反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力 ----by 维基百科 java中的反射也是如此,利用反射的原理我们可以在程序运行时候的能够动态的创建对象,并且调用对象的方法和属性 它的作用是:1.在运行时判断任意一个对象类型 2.在运行时候能够构造任意一个对象 3.在运行时候判断一个类的属性和方法 反射在实际开发中的运用主要是在编写第三方jar包中比较多。我们可以运用反射对程序进行反编译。 二、反射的运用 上面涉及到反射是在java程序运行时才出现的。我们知道java程序运行的机制是先编译再运行。 编译后我们会得到一个以.class结尾的字节码文件。我们要运行一个java程序,只需要这个文件+JVM虚拟机即可 那么就简单了解一下jvm的类加载机制(类的生命周期)吧 在java中反射的核心类是Class类 接下来就看看反射的核心类Class吧。 创建反射(Class)对象有三中方法 1.Class.forName(全路径名); 2.类型 对象名 = new 类型(); 对象名.getClass(); 3.类名.class; ps:该类型不管创建多少个对象,通过对象 获取的Class对象,都是同一个。 下面看一个反射的实例吧: java学习----反射 标签:技术分享 private jar包 路径 image hide getc none print 原文地址:https://www.cnblogs.com/bananafish/p/9744405.htmlpackage 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 + ", id=" + id + ", age=" + age + "]";
}
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;
}
}