• 泛型类,是在实例化类的时候指明泛型的具体类型
  • 泛型方法,是在调用方法的时候指明泛型的具体类型
  • 泛型方法能使方法独立于类而产生变化
  • 如果static方法要使用泛型能力,就必须使其成为泛型方法
import java.util.ArrayList;
import java.util.Random;/*** 抽奖器* @param <T>*/
public class ProductGetter<T> {// 奖品private T product;// 奖品池ArrayList<T> list = new ArrayList<>();Random random = new Random();// 添加奖品public void addProduct(T t ) {list.add(t);}// 抽奖public T getProduct() {product = list.get(random.nextInt(list.size()));return product;}/*** 定义泛型方法* @param list 参数* @param <T> 泛型标识,具体类型由调用方法的时候来指定* @return*/public <T> T getProduct(ArrayList<T> list) {return list.get(random.nextInt(list.size()));}/*** 静态的泛型方法,采用多个泛型类型* @param t* @param e* @param k* @param <T>* @param <E>* @param <K>*/public static <T, E, K> void printType(T t, E e, K k) {System.out.println(t + "\t" + t.getClass().getSimpleName());System.out.println(k + "\t" + k.getClass().getSimpleName());System.out.println(e + "\t" + e.getClass().getSimpleName());}/*** 泛型可变参数的定义* @param e* @param <E>*/public static <E> void print(E ... e) {for (int i = 0; i < e.length; i++) {System.out.println(e[i]);}}
}
import java.util.ArrayList;public class Demo {public static void main(String[] args) {ProductGetter<Integer> productGetter = new ProductGetter<>();ArrayList<String> strList = new ArrayList<>();strList.add("笔记本电脑");strList.add("苹果手机");strList.add("扫地机器人");// 泛型方法的调用,类型是通过调用方法的时候指定String product1 = productGetter.getProduct(strList);System.out.println(product1 + "\t" + product1.getClass().getSimpleName());ArrayList<Integer> intList = new ArrayList<>();intList.add(100);intList.add(200);intList.add(300);Integer product2 = productGetter.getProduct(intList);System.out.println(product2 + "\t" + product2.getClass().getSimpleName());// 调用多个泛型类型的静态泛型方法productGetter.printType(1000,"java", true);// 可变参数的泛型方法的调用productGetter.print(1, 2, 3);productGetter.print("a","b","c");}
}

【Java泛型】泛型方法相关推荐

  1. 【Java 泛型】泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )

    文章目录 一.泛型简介 二.泛型类 三.泛型方法 四.静态方法的泛型 五.泛型类与泛型方法完整示例 一.泛型简介 泛型 可以 简单理解为 参数化类型 , 主要作用在 类 , 方法 , 接口 上 ; j ...

  2. java 泛型详解、Java中的泛型方法、 java泛型详解

    本文参考java 泛型详解.Java中的泛型方法. java泛型详解 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即& ...

  3. java泛型程序设计——翻译泛型表达式+翻译泛型方法

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 翻译泛型表达式+翻译泛型方法 的知识: [1]翻译泛型表达式 1.1 ...

  4. java泛型程序设计——定义简单泛型类+泛型方法

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 定义泛型类+泛型方法的知识: [1]一个泛型类: 就是具有一个或多个 ...

  5. java泛型方法无参_从头再来:Java泛型(开发必须知道的)

    Java泛型 老规矩,测试一下,下面的程序能否正常运行?为什么? 开头测试题 泛型就是实现了参数化类型,也就是代码可以适用于多种类型.泛型是在编译期检查的,在编译期检查类型是否安全.我认为泛型最有用的 ...

  6. java 泛型应用,通用返回类,泛型方法,泛型静态方法

    java 泛型应用,通用返回类,泛型方法,泛型静态方法 泛型简介 应用示例 静态方法增加泛型参数 调用静态公有方法 对比调用非静态公有方法(成员方法) 泛型简介 这里不多说明,详见 java泛型入门 ...

  7. java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一,大厂 HR 如何面试

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 对j ...

  8. java 泛型示例_Java泛型示例教程–泛型方法,类,接口

    java 泛型示例 Java Genrics is one of the most important features introduced in Java 5. Java Genrics是Java ...

  9. Java泛型详解:<T>和Class<T>的使用。泛型类,泛型方法的详细使用实例

    Java泛型 Class和 Class<?>类型 有什么区别 一.引入 1.泛型是什么 首先告诉大家ArrayList就是泛型.那ArrayList能完成哪些想不到的功能呢?先看看下面这段 ...

  10. Java 泛型详解(超详细的java泛型方法解析)

    Java 泛型详解(超详细的java泛型方法解析) 1. 什么是泛型 泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型.也就是说在泛型使用过程中,操作的数据类型被指定为 ...

最新文章

  1. 域名年龄-SEO搜索引擎优化
  2. jakarta_适用于Java EE / Jakarta EE开发人员的Micronaut
  3. 023_html引用和术语定义标签
  4. ts watch路由 参数变化_vue watch 监听路由变化
  5. 原理_JS引擎对未声明变量的处理
  6. 计算机网络运输层的概述,计算机网络_运输层
  7. python如何把数字转化成字符_python 定义一个dictpython如何将数字转化为字符串
  8. openstack mysql默认密码_OpenStack 安装数据库和rabbitmq消息队列 (三)
  9. TableAdapter和DataAdapter有何区别
  10. 每天一记 10.03.26
  11. ST电机库api使用——获取电机状态
  12. java编译过程_Java编译运行过程
  13. SHA256算法C++实现
  14. 计算机u盘被禁用怎么办,u盘禁用了怎么恢复,u盘一启用马上就被禁用
  15. AIO-rk3399j Linux-开机自动连接wifi
  16. 正确的洗澡顺序,据说99%的人都是错的。。
  17. Python读取,写入,保存txt文件
  18. 计算数据的平均值、方差和标准差
  19. 无人驾驶虚拟仿真(五)--图像处理之色彩平衡
  20. 【STM32】HAL库 ——DAC

热门文章

  1. SimMatch 论文分享
  2. 试用HBuilder编辑H5移动开发
  3. 高光谱图像分析:分类 II
  4. 下载安装MarkDown保姆级
  5. linux命令行下的tab键作用
  6. ps把图片背景变透明
  7. Linux的vi编辑器下的常用命令
  8. matlab画一个放大图中图
  9. Java内存模型的抽象结构
  10. 语音识别芯片的基本原理和工作流程