靜態加載:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package com.imooc.加載類; public class Office_Static { public static void main(String[] args) { //new 創建對象,是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類 if ( "Word" .equals(args[ 0 ])){ Word w = new Word(); w.start(); } if ( "Excel" .equals(args[ 0 ])){ Excel e = new Excel(); e.start(); } } } |
這個程序編譯時必須有Word和Excel這兩個類存在才行,即使判斷后用不到Excel也要加載
動態加載:
1、接口OfficeAble :
1
2
3
4
5
|
package com.imooc.加載類; public interface OfficeAble { public void start(); } |
2、Word實現接口:
1
2
3
4
5
6
7
8
|
package com.imooc.加載類; public class Word implements OfficeAble{ public void start(){ System.out.println( "word start" ); } } |
3、Excel實現接口:
1
2
3
4
5
6
7
8
|
package com.imooc.加載類; public class Excel implements OfficeAble{ public void start(){ System.out.println( "excel start" ); } } |
4、Main方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package com.imooc.加載類; public class OfficeBetter { /** * @param args */ public static void main(String[] args) { try { //動態加載類,在運行時刻加載 Class c = Class.forName(args[ 0 ]); //在運行配置里面輸入com.imooc.加載類.Excel //通過類類型,創建該類對象(先轉換為Word和Excel的共同接口OfficeAble) OfficeAble oa = (OfficeAble)c.newInstance(); oa.start(); //不推薦下面兩種,因為不確定是加載Word還是Excel,要強轉 // Word word = (Word)c.newInstance(); // word.start(); // Excel excel = (Excel)c.newInstance(); // excel.start(); } catch (Exception e) { e.printStackTrace(); } } } |
以上就是小編為大家帶來的Java反射之靜態加載和動態加載的簡單實例的全部內容了,希望對大家有所幫助,多多支持服務器之家~