获取类对象引用
?轉載自: http://duben.iteye.com/blog/367218
在學習反射機制時,總結一下獲得類對象方式:?
第一種方式:通過類本身來獲得對象
第二種方式:通過子類的實例獲取父類對象
Java代碼 ?
第三種方式:通過類名加.class獲取對象(類字面常量)
? 類字面常量不僅可以應用于普通的類,還可以應用于接口、數組、以及基本數據類型,對于基本數據類型的包裝器類,還有一個標準字段TYPE,該字段是一個引用,只想對應的基本數據類型的Class對象。如下所示:
?
| boolean.class | Boolean.TYPE |
| char.class | Character.TYPE |
| byte.class | Byte.TYPE |
| short.class | Short.TYPE |
| int.class | Integer.TYPE |
| long.class | Long.TYPE |
| float.class | Float.TYPE |
| double.class | Double.TYPE |
| void.class | Void.TYPE |
?
與Class.forName()方法不同,.class方法在獲取對類的引用時不會引發初始化,只有在對靜態方法(構造器隱式的是靜態的),或者非常數靜態域進行首次引用時才會引發初始化,但是Class.forName()方法立即進行了初始化。
如果一個final static是一個編譯期常量,則這個值不需要初始化就能訪問,但是如果不是,則需要先執行初始化
如果一個域是static但不是final則需要鏈接和初始化。
第四種方式:通過類名的字符串獲取對象
Java代碼 ?
?? 這種方式在jdbc中常用到。
?
?
轉載于:https://blog.51cto.com/speedonward/925684
總結
- 上一篇: C语言——指针与结构体 内存的动态分配
- 下一篇: HyperLink 鼠标经过时候显示全部