當前位置:首頁 » 編程語言 » java泛型繼承

java泛型繼承

發布時間: 2025-02-10 01:47:18

『壹』 java 中的 -> 是什麼意思

「->」是Java 8新增的Lambda表達式中,變數和臨時代碼塊的分隔符,即:
(變數)->{代碼塊}
如果代碼塊只有一個表達式,大括弧可以省略。如果變數類型可以自動推斷出來,可以不寫變數類型。

『貳』 JAVA泛型有什麼作用泛型是實泛型還是偽泛型

泛型好處:

泛型簡單易用

類型安全 泛型的主要目標是實現java的類型安全。 泛型可以使編譯器知道一個對象的限定類型是什麼,這樣編譯器就可以在一個高的程度上驗證這個類型

消除了強制類型轉換 使得代碼可讀性好,減少了很多出錯的機會

Java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查類型安全,並且所有的強制轉換都是自動和隱式的,提高代碼的重用率。

泛型的實現原理

泛型的實現是靠類型擦除技術 類型擦除是在編譯期完成的 也就是在編譯期 編譯器會將泛型的類型參數都擦除成它的限定類型,如果沒有則擦除為object類型之後在獲取的時候再強制類型轉換為對應的類型。 在運行期間並沒有泛型的任何信息,因此也沒有優化。

泛型不考慮繼承

List 類型 是否 可以 賦值為 List類型 ?
答案是不可以的
雖然說在賦值之後 String類型可以當做 Object類型使用 但是還是會出現問題

參考:《2020最新Java基礎精講視頻教程和學習路線!》

『叄』 Java中定義泛型<T>時,怎麼獲得泛型的類型

T.getClass()或缺清者T.class都是非法的,因為T是泛型變數。
由於一個類的類型是什麼是宴扮梁在編譯期處理的,故不能在運行時直接在Base里得到T的實際類型。
有一種變通的實現方式:
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class Generic extends Base<String> {
public static void main(String[] args) {
Generic c = new Generic();
System.out.println(c.array);
}

Object array ;
public Generic() {
array = Array.newInstance(getGenericType(0), 100);
}
}

class Base<T> {
public Class getGenericType(int index) {
Type genType = getClass().getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
throw new RuntimeException("Index outof bounds");
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class) params[index];
}
}
其中Base<T>是泛型類,在父類中晌運聲明getGenericType,子類繼承具體的Base<String>,那麼在子類中就可以通過getGenericType(0)獲取到String的class.

熱點內容
java數組的定義方法 發布:2025-03-14 00:53:25 瀏覽:515
壓縮性綳帶 發布:2025-03-14 00:30:21 瀏覽:181
如何給樹莓派編譯適合的軟體 發布:2025-03-14 00:29:45 瀏覽:374
c語言編譯器雲盤鏈接 發布:2025-03-14 00:25:23 瀏覽:346
電腦上哪個游戲可以移植到安卓上 發布:2025-03-14 00:10:32 瀏覽:472
tcl編譯器 發布:2025-03-13 23:52:59 瀏覽:322
linuxnamed 發布:2025-03-13 23:45:29 瀏覽:362
阿里雲30元伺服器 發布:2025-03-13 23:21:25 瀏覽:352
pythonstatvfs 發布:2025-03-13 23:14:55 瀏覽:955
火車上有密碼多少 發布:2025-03-13 23:14:10 瀏覽:867