Java泛型是Java語言一項關鍵的特性,它允許我們在編寫代碼時使用類型參數來代替具體的類型,從而提高代碼的可重用性和類型安全性。這里要介紹的是Java泛型中的上界和下界的概念。
首先讓我們看一下什么是泛型的上界。上界是指在類或方法中使用泛型時,指定一個泛型類型參數的類型上限,表示該泛型參數必須是指定類型的子類或本身。例如:
public class Box<T extends Number> { private T data; public Box(T data) { this.data = data; } public T getData() { return data; } }
在上面的代碼中,Box類的泛型參數T使用了上界Number,意味著T必須是Number類型的子類或本身。這樣就可以在Box類中調用Number類的方法,因為Number是T的上界。
接下來是泛型的下界。下界和上界的概念相反,它規定了泛型參數必須是指定類型的超類或本身。例如:
public class Box<T> { private T data; public Box(T data) { this.data = data; } public void setData(T data) { if (data instanceof Integer) { this.data = data; } else { System.out.println("數據類型不匹配"); } } }
在上面的代碼中,setData方法使用了下界Integer,表示泛型參數T必須是Integer的超類或本身。這樣就可以在setData方法中判斷data是否是Integer類型,如果是就允許賦值,如果不是就輸出提示信息。
總結來說,Java泛型中的上界和下界是一種限定泛型參數類型的方式,通過規定類型的上限或下限來增加程序的類型約束和約定,提高代碼的可讀性和可維護性。