Java中泛型通配符的使用方法示例

 更新时间:2019年08月07日 10:54:27   作者:cakincqm  
这篇文章主要介绍了Java中泛型通配符的使用方法,结合实例形式分析了java中泛型通配符的功能、语法及在泛型类创建泛型对象中的使用方法,需要的朋友可以参考下

本文实例讲述了Java中泛型通配符的使用方法。分享给大家供大家参考,具体如下:

一 点睛

引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数。

语法如下:

泛型类名<? extends T> 或 泛型类名<? super T> 或 泛型类名<?>

  • ? extends T:表示T或T的子类
  • ? super T:表示T或T的父类
  • ?:表示可以是任意类型

二 通配符在泛型类创建泛型对象中使用

1 代码

class gent<T> {
  public void test() {
    System.out.println("gent");
  }
}
public class testa {
  public static void main( String[] args ) {
    gent<? extends String> o;  // 决定了泛型实例化对象只能是String类或它的子类
    o = new gent<String>();//正确
    o.test();
    //o=new gent<Number>();//错误
  }
}

2 运行

gent

三 通配符在方法参数中使用

1 代码

class gent<T> {
  public void test() {
    System.out.println("gent");
  }
}
class supC {
  public String toString() {
    return "supA";
  }
}
public class Bc extends supC {
  String b;
  public Bc( String b ) {
    this.b = b;
  }
  public String toString() {
    return "subB";
  }
  // 指明泛型参数必须是supC或其子类
  public void test( gent<? extends supC> o ) {
    System.out.println("Bc");
  }
  public static void main( String[] args ) {
    Bc bc = new Bc("test");
    gent<Bc> oGent = new gent<Bc>();
    bc.test(oGent);  // oGent 是supC的子类对象
  }
}

2 运行

Bc

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • 修改SpringBoot 中MyBatis的mapper.xml文件位置的过程详解

    修改SpringBoot 中MyBatis的mapper.xml文件位置的过程详解

    由于MyBatis默认的mapper.xml的扫描位置是resource文件下,但是不可能整个项目的mapper.xml文件都放在resource下,如果文件较少还行,但是如果文件比较多,太麻烦了,所以本文给大家介绍了修改SpringBoot 中MyBatis的mapper.xml文件位置的过程,需要的朋友可以参考下
    2024-08-08
  • JAVA 对接腾讯云直播的实现

    JAVA 对接腾讯云直播的实现

    这篇文章主要介绍了JAVA 对接腾讯云直播的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • spring boot项目自定义参数校验规则示例详解

    spring boot项目自定义参数校验规则示例详解

    这篇文章主要介绍了spring boot项目如何自定义参数校验规则,自定义校验规则和自带的规则实现方式一样,先自定义一个注解,然后指定校验类,在校验类里实现具体的校验规则,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Springboot实现接口加密的示例代码

    Springboot实现接口加密的示例代码

    Springboot实现一个接口加密 首先来看效果 这个主要是为了防止篡改请求的。 我们这里采用的是一个AOP的拦截,在有需要这样的接口上添加了加密处理。 下面是一些功能 防篡改 HMAC-SHA25
    2025-08-08
  • SpringBoot Mybatis动态数据源切换方案实现过程

    SpringBoot Mybatis动态数据源切换方案实现过程

    这篇文章主要介绍了SpringBoot+Mybatis实现动态数据源切换方案过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 用SpringBoot+Vue+uniapp小程序实现在线房屋装修管理系统

    用SpringBoot+Vue+uniapp小程序实现在线房屋装修管理系统

    这篇文章主要介绍了用SpringBoot+Vue+uniapp实现在线房屋装修管理系统,针对装修样板信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题开发了这套系统,需要的朋友可以参考下
    2023-03-03
  • springboot实现文件上传和下载功能

    springboot实现文件上传和下载功能

    这篇文章主要为大家详细介绍了springboot实现文件上传和下载功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • SpringFramework中的数据校验方式

    SpringFramework中的数据校验方式

    这篇文章主要介绍了SpringFramework中的数据校验方式,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • 一篇文章带你深入了解Java基础(4)

    一篇文章带你深入了解Java基础(4)

    这篇文章主要给大家介绍了关于Java中方法使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • Java与Python两种编程语言的比较与应用举例详解

    Java与Python两种编程语言的比较与应用举例详解

    这篇文章主要介绍了Java与Python两种编程语言比较与应用的相关资料,Java和Python各有特点,Java适用于企业级应用开发,Python则在数据科学和机器学习领域占优势,两者在语法、应用领域、性能、开发效率等方面存在差异,需要的朋友可以参考下
    2025-02-02

最新评论