轉自:
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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/499853.html
標籤:其他
