Java的反射機制簡述
阿新 • • 發佈:2017-06-19
tools win 也會 sys ase 路徑 col 同時 int
反射機制是Java語言中一個非常重要的特性,它允許程序在運行時進行自我檢查,同時也允許內部的成員進行操作。雖然這個特性在實際開發中使用的不多,但是像Pascal、C和C++等語言根本沒有提供這樣的特性。由於反射機制能夠實現在運行時對類進行裝載,因此能夠增加程序的靈活性,但是不恰當地使用反射機制也會嚴重影響系統的性能。
具體而言,反射機制提供的功能主要有:
1、得到一個對象所屬的類;
2、獲取一個類的所有成員變量和方法;
3、在運行時創建對象;
4、在運行時調用對象的方法。
其實,反射機制非常重要的一個作用就是可以在運行時動態地創建類的對象,示例如下:
1 package cn.ch4;
2
3 class Base{
4 public void f(){
5 System.out.println("Base");
6 }
7 }
8 class Te extends Base{
9 public void f(){
10 System.out.println("Te");
11 }
12 }
13 public class FansheTest {
14 public static void main(String[] args){
15 try{//使用反射機制加載類
16 Class c = Class.forName("cn.ch4.Te");//註意,此處為包括包在內的完整路徑
17 Base b = (Base)c.newInstance();
18 b.f();
19 }catch(Exception e){
20 e.printStackTrace();
21 }
22 }
23 }
其運行結果為Te。
在反射機制中,Class是一個非常重要的類,獲取所想要的類主要有以下三種方法:
1>Class.forName("類的路徑"),如上例;
2>類名.class;
3>實例.getClass()。
Java的反射機制簡述