java反射+列舉+泛型
阿新 • • 發佈:2019-01-29
反射:
1.呼叫反射的三種方法
2.class.forName 動態編譯
- 靜態載入類,是編譯時刻載入;動態載入類,是執行時刻載入
- new建立物件:是靜態載入類,在編譯時刻就需要載入所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。
- Class.forName()通過動態載入類,可以用到一個類時,才進行載入。
- 【功能性的類儘量使用動態載入,並對新添的類實現功能性介面(標準),這樣就不用重新編譯】
3.反射獲得方法、構造方法、成員變數
4.反射獲得MEHTOD再用INVOKE呼叫方法
5.反射是編譯之後的
注意:list<string >泛型的限定作用只在編譯階段起作用,其目的只是為了防止程式設計師在寫程式碼的時候放入了錯誤型別的元素,當編譯完成後,程式執行時,泛型不再起任何限定作用,此時如果利用反射(詳見下文的反射部分),動態建立class類的物件(等於List類),然後利用方法的反射操作來呼叫add,就可以加入任何型別的元素了,所以繞過了編譯就繞過了泛型。
列舉:
1.列舉型別初始化
2.values方法 返回列舉中型別陣列
3.valuesof(string)方法 將字串轉換為列舉例項
4.輸出變數內容:switch方法輸出、遍歷輸出
泛型:
1.基本格式 public class over<T>()
{
public T[] AA;//只能宣告陣列
}
over<float> oo=new over<float>();
2.extends關鍵字限制泛型可用型別
3.<?extends >用萬用字元限制泛型