假设一个方法中能接受的泛型对象只能是数字类型,则在定义这个方法参数接受对象的时候就必须指定泛型的上限。因为所有的数字包装类都是Number的子类,所以代码如下
- public class Test {
- public static void main(String[] args) {
- Point<Integer> p = new Point<Integer>();
- Point<Double> p1 = new Point<Double>();
- p.setVar(100);
- p1.setVar(100.1);
- print(p);
- print(p1);
- }
-
- public static void print(Point<? extends Number> p){
- System.out.println(p.getVar());
- }
- }
复制代码
当使用的泛型只能在本类或者其父类类型上应用时,就必须使用泛型的范围下限进行配置:
- public class Test {
- public static void main(String[] args) {
- Point<String> p = new Point<String>();
- Point<Object> p1 = new Point<Object>();
- p.setVar("abc");
- p1.setVar(new Object());
- print(p);
- print(p1);
- }
-
- public static void print(Point<? super String> p){
- System.out.println(p.getVar());
- }
- }
复制代码 |