泛型:所谓泛型,就是变量的类型参数化。

作用:限制泛型可用类型。

  1. 简单的泛型定义使用:

public class GenericFoo<T> {private T foo;public void setFoo(T foo){this.foo = foo;}public T getFoo(){return this.foo;}public static void main(String[] args){//GenericFoo is a raw type, References to generic type GenericFoo<T> should be parameterized.GenericFoo foo = new GenericFoo(); GenericFoo<String> sFoo = new GenericFoo<String>();GenericFoo<Integer> iFoo = new GenericFoo<Integer>();sFoo.setFoo("string foo");
//        sFoo.setFoo(11); //这里只能放置String类型的,放置11在编译时就会报错。iFoo.setFoo(11);}
}

2.定义两个泛型,以及泛型数组的定义使用:

public class GenericFoo2<T,E> {private T foo1;private E foo2;private T[] arrays;public T getFoo1() {return foo1;}public void setFoo1(T foo1) {this.foo1 = foo1;}public E getFoo2() {return foo2;}public void setFoo2(E foo2) {this.foo2 = foo2;}public T[] getArrays() {return arrays;}public void setArrays(T[] arrays) {this.arrays = arrays;}public static void main(String[] args){GenericFoo2<String,Boolean> gf = new GenericFoo2<String,Boolean>();gf.setFoo1("string");gf.setFoo2(false);gf.setArrays(new String[]{"aa","bb"});}
}

3.模仿ArrayList实现集合泛型化:

public class GenericCollection<E> {private Object[] array;private int index;public GenericCollection(){this(10);}public GenericCollection(int capacity){array = new Object[capacity];}public void add(E e){array[index++] = e;}public E get(int index){return (E)array[index];}public static void main(String[] args){GenericCollection<Integer> gc = new GenericCollection<Integer>();for(int i=0;i<10;i++){gc.add(i*2);}for(int i=0;i<10;i++){System.out.println(gc.get(i));}}
}

转载于:https://blog.51cto.com/zlfwmm/1711240

Java记录 -74- 自定义泛型相关推荐

  1. Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用

    文章目录 泛型的概念 集合中使用泛型 自定义泛型结构 泛型在继承上的体现 通配符的使用 泛型的概念 集合容器类在设计阶段/声明阶段不能确定这个容器实际存的是什么类型的对象,所以在JDK1.5之前只能把 ...

  2. java(四)【常用API,自定义泛型、collection接口】

    day04[常用API.正则表达式,泛型.Collection集合API] 主要内容 Date类 Java是面向对象的思想,会用一个类来代表一个事物. Date代表了系统当前此刻日期对象!年月日时分秒 ...

  3. Java泛型-泛型作用+泛型在各种数据结构中的使用+自定义泛型

    文章目录 1. 概念 2. 为什么要使用泛型(Generic) 2.1 在ArrayList中使用泛型 2.2 在HashMap中使用泛型 3. 自定义泛型结构 3.1 泛型类与泛型接口 3.2 泛型 ...

  4. Java高级编程之泛型

    Java泛型 一.泛型简介 1. 泛型的概念 所谓泛型,就是允许在定义类.接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型.这个类型参数将在使用时(例如,继承或实现这个接口,用 ...

  5. Java基础篇:泛型

    文章目录 1.为什么要有泛型 2.在集合中使用泛型 3.自定义泛型结构 4.泛型在继承上的体现 5.通配符的使用 1.为什么要有泛型 泛型:标签 泛型背后的核心思想就是:把一个集合中的内容限制为一个特 ...

  6. java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现

    泛型Generics 一般通过"容器"来容纳和管理数据.程序中的"容器"就是用来容纳和管理数据. 数组就是一种容器,可以在其中放置对象或基本类型数据. 数组的优 ...

  7. Java基础篇:泛型与类型擦除

    一.什么是泛型: 泛型的本质是 参数化类型,也就是说 将所操作的数据类型 指定为一个参数,在不创建新类的情况下,通过参数来指定所要操作的具体类型(类似于方法中的变量参数,此时类型也定义成参数形式),也 ...

  8. java 8流自定义收集器_Java 8编写自定义收集器简介

    java 8流自定义收集器 Java 8引入了收集器的概念. 大多数时候,我们几乎不使用Collectors类中的工厂方法,例如collect(toList()) , toSet()或其他更有趣的方法 ...

  9. Java笔记05-Collection、泛型、迭代器

    Java笔记05-Collection.泛型.迭代器 [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 ...

  10. java 记录考勤记录_Java中的记录器– Java记录示例

    java 记录考勤记录 Today we will look into Logger in Java. Java Logger provides logging in java programming ...

最新文章

  1. 中国数字化进程比发达国家快,小程序让我感到自豪 | IT领袖峰会
  2. Quartz2D简单图形
  3. javascript读取xml文件读取节点数据的例子
  4. jedis 读写分离_redis读写分离时jedis怎么知道访问主服务器或者从服务器?
  5. 配置静态路由下一跳为本地出战接口和IP地址的区别
  6. innobackupex实现导出和导入单张表
  7. WMS请求GetCapabilities,变成下载mapserv.exe解决办法
  8. java 复制文本内容_基于java文本复制的7种方式总结
  9. 有趣的数学计算  1/9801 (结果 00,01,02,03。。。97)(使用到 BigDecimal )
  10. Ubuntu启动密码丢失的找回
  11. L2-006 树的遍历 (25 point(s))
  12. DOS窗口命令大全用法及其详解
  13. windows下搭建tracker服务器
  14. 二倍图三倍图什么意思_ios切图(一倍图+二倍图+三倍图)
  15. 关于switchcase和ifelse的效率对比分析
  16. “海青杯”复赛群雄逐鹿,凡科为青年创业翱翔插上翅膀
  17. Java通过jacob生成动态word,还有一种方法通过word书签实现
  18. python list 查找与过滤方法整合
  19. CAD制图怎么绘制对称的图形?
  20. 函数function的使用方法

热门文章

  1. Qt安装及配置_很详细(附下载网址)
  2. 报错解决:Liquid Warning: Liquid syntax error (line 2): Expected dotdot but found id in {{(site.github.p
  3. java hasnextstring_Java – ListIterator和hasNext
  4. nullptr和NULL
  5. 30 分钟 git 命令入门
  6. 软件测试中7个令人匪夷所思的真理
  7. 运维企业专题(1)HTTP加速器——Varnish缓存机制前篇
  8. ogg oracle to mysql_ogg oracle to mysql
  9. 加密解密_使用RSA密钥对加密解密数据
  10. python字符串进行位运算_不懂python如何使用函数进行分组运算?7种方法,函数分组不再难...