Java泛型类与泛型方法的定义详解

 更新时间:2019年08月08日 08:42:30   作者:cakincqm  
这篇文章主要介绍了Java泛型类与泛型方法的定义,结合实例形式详细分析了java泛型类与泛型方法定义、用法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了Java泛型类与泛型方法的定义。分享给大家供大家参考,具体如下:

Java泛型类的定义

一 点睛

泛型类定义的语法如下:

[访问修饰符] class 类名称 <T>

泛型类的主要作用在于类被实例化后,传入具体的类型参数,对类的成员属性的类型和成员方法的参数类型和返回值类型进行替换。

二 代码

public class Base<T> {
  T m;
  Base(T t) {
    m = t;
  }
  public T getM(){
    return m;
  }
  public void print() {
    System.out.println("base print : " + m);
  }
  public static void main(String[] args) {
    Base<String> base=new Base<String>("base class is general");
    System.out.println(base.getM());
    base.print();
  }
}

三 运行

base class is general
base print :  base class is general

四 说明

T可以用任何一种引用类型,但是不允许使用基本类型,如int、double、char、boolean等是不允许的。泛型类定义时,可以使用T来定义其成员变量和成员方法的返回值和参数。

Java泛型方法的定义

一 点睛

泛型方法主要用于容器类,Java中任何方法,包括静态的(注意,泛型类不允许在静态环境中使用)和非静态的,均可以用泛型来定义,而且和所在类是否是泛型没有关系。

下面是泛型方法的定义

[public] [static] <T> 返回值类型 方法名(T 参数列表)

二 代码

public class GeneralMethod {
   public static <U> void print(U[] list) {
     System.out.println();
     for (int i = 0; i < list.length; i++) {
      System.out.print(" " + list[i]);
     }
     System.out.println();
   }
   public static void main(String[] args) {
     String a[]={"a","b","c","d","e"};
     Character b[]={'1','2','3','4','5'};
     Integer c[]={1,2,3,4,5};
     GeneralMethod.print(a);
     GeneralMethod.print(b);
     GeneralMethod.print(c);
   }
}

三 运行

a b c d e

1 2 3 4 5

1 2 3 4 5

四 说明

使用泛型方法时,至少返回值或参数有一个是泛型定义的,而且应该保持一致,否则可能会受到各种限制,因此,这里建议保持一致。

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

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

相关文章

  • idea创建包含多个springboot module的maven project的方法

    idea创建包含多个springboot module的maven project的方法

    这篇文章主要介绍了idea创建包含多个springboot module的maven project的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java struts2 validate用户登录校验功能实现

    Java struts2 validate用户登录校验功能实现

    这篇文章主要为大家详细介绍了Java struts2 validate用户登录校验功能实现的具体步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • java实现多线程卖票功能

    java实现多线程卖票功能

    这篇文章主要为大家详细介绍了java实现多线程卖票功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • spring Cloud微服务跨域实现步骤

    spring Cloud微服务跨域实现步骤

    这篇文章主要介绍了spring Cloud微服务跨域实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Spring 父类变量注入失败的解决

    Spring 父类变量注入失败的解决

    这篇文章主要介绍了Spring 父类变量注入失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java JSON转成List结构数据

    Java JSON转成List结构数据

    这篇文章主要介绍了Java JSON转成List结构数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • drools中使用function的方法小结

    drools中使用function的方法小结

    当我们在drools中编写规则时,有些时候存在重复的代码,那么我们是否可以将这些重复代码抽取出来,封装成一个function来调用呢?那么在drools中如何自定义function?下面小编给大家介绍下drools中使用function的方法,需要的朋友可以参考下
    2022-05-05
  • SpringBoot RestTemplate 简单包装解析

    SpringBoot RestTemplate 简单包装解析

    这篇文章主要介绍了SpringBoot RestTemplate 简单包装解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • SpringCloud实现灰度发布的方法步骤

    SpringCloud实现灰度发布的方法步骤

    本文主要介绍了SpringCloud实现灰度发布的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • java访问者模式的静态动态及伪动态分派彻底理解

    java访问者模式的静态动态及伪动态分派彻底理解

    这篇文章主要为大家介绍了java访问者模式的静态动态及伪动态分派彻底理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论