Java中的異常處理、泛型!圖文講解
阿新 • • 發佈:2018-11-01
1.異常: 非正常的情況,改變程式的執行流程
- 堆疊提示順序
Throwable
|
*空指標就是沒有物件!**空指標就是沒有物件!**空指標就是沒有物件!*
2.異常處理方式:
- try-catch
- 語法:
Try{
可以會出現異常的程式碼
}catch(異常類型別 物件名)}
處理物件
}
- 情況:
- 沒有異常。Try 執行了,catch沒執行
- 異常型別匹配。Try執行了,catch也執行了。
- 異常型別不匹配。Try也執行了,catch也執行了。
- try- catch-finally
Try{
會出現異常的程式碼;
}catch{}
- Throw拋異常:之間拋異常 如果 丟擲的 執行時異常,可以不用throws宣告
- 自定義異常
- 除錯:設定斷點;
- 單步執行;
- F6 單步跳過;
- F5單步跳入;
- 除錯:設定斷點;
- 發現和解決問題。
方法重寫:子類,例項方法,名相同。引數一致,返回值型別一致,訪問許可權不能比父類更嚴格,異常範圍不能 比父類更大。
|
3.泛型
概念:引數化型別
型別引數:
- 定義時:形式型別引數
- 應用時:實際型別引數:(必須是引用型別)
- 引數化型別:型別<實際型別引數>
- 好處:
- 在編譯期進行型別檢查;
- 型別不確定。
定義泛型類:class類名<型別引數>{
}
- 萬用字元:? 無界萬用字元 匹配 任意型別
? extends上限類 匹配 上限類 和下限的子類
? super 下限類 匹配 下限類 和 下限類的父類
- 型別引數 和 萬用字元的區別:
- 型別引數 可以表示一中了型別,泛型型別;萬用字元不能表示一種型別。
- 型別引數 只能指定上限和下限;
- 型別引數 可以指定多個上限;統配符,不能指定多個上限。
- 泛型構造器
- 泛型方法
- 擦除原則:①引數化型別。擦除後為 原生型別
- Point3<String> p; ->Point3 p;
- ②型別引數:1)無界型別引數,擦除後為Object class Point<T>{}->Point<Object>{類體部分都用Object}變成Objuect x;
- 2)有一個上限的型別引數,用上限來替換:<T extends A ->A
- 3)有多個上限,由第一個上限來替換;<T extenfs A & B> ->A