golang拾遺主要是用來記錄一些遺忘了的、平時從沒註意過的golang相關知識。 很久沒更新了,我們先以一個謎題開頭練練手: package main import ( "encoding/json" "fmt" "time" ) type MyTime time.Time func main() ...
轉自:
http://www.java265.com/JavaCourse/202205/3593.html
泛型程式設計(generic programming)是程式設計語言的一種風格或範式。泛型允許程式員在強類型程式設計語言中編寫代碼時使用一些以後才指定的類型,在實例化時作為參數指明這些類型。各種程式設計語言和其編譯器、運行環境對泛型的支持均不一樣。Ada、Delphi、Eiffel、Java、C#、F#、Swift 和 Visual Basic .NET 稱之為泛型(generics);ML、Scala 和 Haskell 稱之為參數多態(parametric polymorphism);C++ 和 D稱之為模板。具有廣泛影響的1994年版的《Design Patterns》一書稱之為參數化類型(parameterized type)
下文筆者講述Java泛型類擴展註意事項,如下所示
java泛型類進行從Exception和Throwable類擴展 例:下麵的定義方式"不會被允許" //The generic class InfoClass<T> may not subclass java.lang.Throwable class InfoClass<T> extends Exception {} //The generic class InfoClass<T> may not subclass java.lang.Throwable class InfoClass1<T> extends Throwable {}
例:
不允許方法捕獲類型參數的實例 public static <T extends Exception, J> void execute(List<J> jobs) { try { for (J job : jobs) {} // compile-time error //Cannot use the type parameter T in a catch block } catch (T e) { // ... } } 類型參數在throws子句中是允許的 class InfoClass<T extends Exception> { private int t; public void add(int t) throws T { this.t = t; } public int get() { return t; } }