首页 > 代码库 > 【java】反射简单示例

【java】反射简单示例

技术分享
1 package 反射;
2 
3 public class Test反射 {
4     public static void main(String[] args) {
5         System.out.println(Runtime.getRuntime().getClass());//class java.lang.Runtime
6         Test反射 t=new Test反射();
7         System.out.println(t.getClass());//class 反射.Test反射
8     }
9 }
getClass

 

技术分享
 1 package 反射;
 2 
 3 public class Test反射 {
 4     public static void main(String[] args) {
 5         Test反射 t=new Test反射();
 6         //Class类是反射操作的源头,所有的反射都要从此类开始进行。
 7         Class<?> cls=t.getClass();//第1种Class类实例化方法,用的很少
 8         System.out.println(cls);//class 反射.Test反射
 9         Class<?> cls2=Test反射.class;//第2种Class类实例化方法,用的多,使用领域:Hibernate、Mybatis、Spring
10         System.out.println(cls2);//class 反射.Test反射
11         Class<?> cls3=null;
12         try {
13             cls3=Class.forName("反射.Test反射");//第3种Class类实例化方法,用的多。此处要写全名,即加上包名,否则报错。
14         } catch (ClassNotFoundException e) {
15             e.printStackTrace();
16         }
17         System.out.println(cls3);//class 反射.Test反射
18     }
19 }
Class类3种实例化方式

 

技术分享
 1 package 反射;
 2 class A{
 3     public A(){
 4         System.out.println("调用无参构造实例化对象。");
 5     }
 6     @Override
 7     public String toString() {
 8         return "调用toString()方法。";
 9     }
10 }
11 public class Test反射 {
12     public static void main(String[] args) {
13         Class<?> cls=null;
14         try {
15             cls=Class.forName("反射.A");
16         } catch (ClassNotFoundException e) {
17             e.printStackTrace();
18         }
19         Object o=null;
20         try {
21             o=cls.newInstance();
22         } catch (InstantiationException e) {
23             e.printStackTrace();
24         } catch (IllegalAccessException e) {
25             e.printStackTrace();
26         }
27         System.out.println(o);
28         /**
29          * 运行结果:
30          *    调用无参构造实例化对象。
31          *    调用toString()方法。
32          */
33     }
34 }
利用反射进行实例化对象

 

【java】反射简单示例