## 软件包 java.lang.reflect 的描述 
提供类和接口,以获得关于类和对象的反射信息。
在安全限制内,反射允许编程访问关于加载类的字段、方法和构造方法的信息,
并允许使用反射字段、方法和构造方法对其底层对等项进行操作。

 Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,
可以调用任意一个对象的属性和方法
jdbc(数据库连接技术)在加载驱动时运用到了反射技术

然后我们了解一下java程序运行过程和使用反射后java程序的运行过程:

java程序运行过程:Student.java==>编译==>Student.class==>java虚拟机==>运行程序

java放射: ?==>编译器==>运行程序==>编译器

反射机制和java.lang.Class<T>这个类息息相关,
因为z整个反射机制j就是基于对Class对象的操作,了解反射之前,我们需要先了解这个类.

Class这个类很特殊的一个名字对吧,那么它的意义肯定也非同一般。一句话,Class这个类就代表z正在运行的java应用程序的类和接口。
如果把一个类比作成一个人,那么Class对象就相等于这个人的资料卡片,关于这个人的一起都在这个小小的资料卡片中存储着。


下面是代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class work2 {
public static void main(String[] args) {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入任意类的名字");
String classname=br.readLine();
Class cs=Class.forName(classname);

while (cs!=null){
System.out.println(cs);
cs=cs.getSuperclass();
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

}
}
package work1;

import java.util.List;

public class work1 {
public static void main(String[] args) {
Class cs= List.class;
System.out.println("相关信息:");
System.out.println("类名:"+cs.getName());
System.out.println("包名:"+cs.getPackage());
System.out.println("是否为接口:"+cs.isInterface());
System.out.println("是否为数组:"+cs.isArray());
System.out.println("是否为基本类型:"+cs.isPrimitive());
System.out.println("获得父类的class对象:"+cs.getSuperclass());
}
}
运行图:

 

 

心得总结:每天积累一点点,这样就不会掉头发了。

Posted on 2020-08-21 19:05  脸红嘛宝贝  阅读(106)  评论(0编辑  收藏  举报