Java泛型 - 下界通配符

Java泛型 - 下界通配符 首页 / 泛型入门教程 / Java泛型 - 下界通配符

问号(?)代表通配符,代表泛型中的未知类型,有时您可能想限制允许传递给参数的下限类型。

要声明一个下限的通配符参数,使用 “?”,然后使用super关键字,再列出其下限。

以下示例说明了如何使用super指定下界通配符。

package com.learnfk;

import java.util.ArrayList;
import java.util.List;

public class GenericsTester {

   public static void addCat(List<? super Cat> catList) {
      catList.add(new RedCat());
      System.out.println("Cat Added");
   }

   public static void main(String[] args) {
      List<Animal> animalList= new ArrayList<Animal>();
      List<Cat> catList= new ArrayList<Cat>();
      List<RedCat> redCatList= new ArrayList<RedCat>();
      List<Dog> dogList= new ArrayList<Dog>();

      //add list of super class Animal of Cat class
      addCat(animalList);

      //add list of Cat class
      addCat(catList);

      //compile time error
      //can not add list of subclass RedCat of Cat class
      //addCat(redCatList);

      //compile time error
      //can not add list of subclass Dog of Superclass Animal of Cat class
      //addCat.addMethod(dogList); 
   }
}
class Animal {}

class Cat extends Animal {}

class RedCat extends Cat {}

class Dog extends Animal {}

这将产生以下输出-

Cat Added
Cat Added

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

网络编程实战 -〔盛延敏〕

说透中台 -〔王健〕

MongoDB高手课 -〔唐建法(TJ)〕

安全攻防技能30讲 -〔何为舟〕

正则表达式入门课 -〔涂伟忠〕

容器实战高手课 -〔李程远〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

AI绘画核心技术与实战 -〔南柯〕

程序员职业规划手册 -〔雪梅〕

好记忆不如烂笔头。留下您的足迹吧 :)