當前位置:首頁 » 編程語言 » 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.

熱點內容
伺服器如何做到獨立防護 發布:2025-02-10 21:50:45 瀏覽:108
摩斯密碼從哪裡來 發布:2025-02-10 21:34:50 瀏覽:439
蝴蝶結的密碼是多少 發布:2025-02-10 21:34:42 瀏覽:127
php迭代數組 發布:2025-02-10 21:19:35 瀏覽:794
編程語言指數 發布:2025-02-10 20:54:34 瀏覽:185
圖案加密法 發布:2025-02-10 20:49:47 瀏覽:992
壓縮推送 發布:2025-02-10 20:44:00 瀏覽:428
android中的緩存 發布:2025-02-10 20:27:27 瀏覽:856
安卓手機在哪裡下tiktok 發布:2025-02-10 20:22:02 瀏覽:708
B站用哪家的雲伺服器 發布:2025-02-10 20:18:39 瀏覽:606