泛型的上限和下限
泛型的上限和下限
上限
上限就是指一个操作泛型最大的操作父类,例如,现在最大的上限设置成Number,那么此时,所能够接收的类型最高为Number上限,及其Number子类
package com.kk.example12.ex03;
/**
* @author : K
* @Date : 2022/11/9
* @Desc : 泛型上限
* 上限就是指一个操作泛型最大的操作父类,例如,现在最大的上限设置成Number
* 那么此时,所能够接收的类型最高为Number上限,及其Number子类
*/
public class Info<T extends Number> {
private T var;
public void setVar(T var) {
this.var = var;
}
public T getVar(){
return var;
}
@Override
public String toString(){
return this.var.toString();
}
}
/**
* @author 30666
*/
class Demo1{
public static void main(String[] args) {
Info<Integer> info1 = new Info<>();
Info<Number> info11 = new Info<>();
}
}
下限
泛型下限,指的是只能设置其具体的类或者父类,当只能在方法中设置
package com.kk.example12.ex03;
/**
* @author : K
* @Date : 2022/11/9
* @Desc : 泛型下限,指的是只能设置其具体的类或者父类,当只能在方法中设置
*/
public class Info2<T> {
private T var;
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
@Override
public String toString() {
return this.var.toString();
}
}
class GenericsDemo{
public static void main(String[] args) {
Info2<String> info2 = new Info2<>();
Info2<Object> info22 = new Info2<>();
info2.setVar("hello");
info22.setVar(new Object());
fun(info2);
fun(info22);
}
public static void fun(Info2<? super String> temp){
System.out.println(temp+",");
}
}
还没有评论,来说两句吧...