Java 模版进阶
文章目录
- 模版
- 通配符

模版
通配符
- 实例
import java.util.ArrayList;
import java.util.List;class Message<T> {private T message ;public T getMessage() {return message;}public void setMessage(T message) {this.message = message;}
}
public class test {public static void main(String[] args) {Message<String> message = new Message<>() ;message.setMessage("比特就业课欢迎您");fun(message);Message<Integer> message1 = new Message<>();message1.setMessage(10);fun(message1);}// 并不知道Message<?> 传的是什么类型,所以使用通配符,可以匹配传入的类型public static void fun(Message<?> temp){System.out.println(temp.getMessage());// temp.setMessage(12);// 不可以设置通配符,因为不知道它的类型是什么}
}/*
public class test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();List<String> list1 = new ArrayList<>();}
}
*/
- 通配符的上界和下界
上界:<?extends 类> 通配符上界
下界:<? super 类> 通配符下界
通配符上界实例:
不能使用setMessage(new Banana())
因为Banana()不一定是对应的那个子类对象实例
通配符下界:
实例:
可以使用setMessage(new Apple())
因为Apple可以进行向上转型成Fruit或者是Food
getMessage()不可使用,使用时分不清是Fruit还是Food
所以要使用时要进行强转