本文主要讲述泛型的使用

1、在集合中的使用

2、自定义泛型类、泛型接口、泛型方法

3、泛型与继承的关系

4、通配符

由于第一点和第二点在平常的编码工作中已熟练,本文重点讲述后面两点。

直接show the code:

package com.learn;

import java.util.List;

public class ParentGeneric<T> {
private String name; private int id; private T t; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public T getT() {
return t;
} public void setT(T t) {
this.t = t;
} // 声明泛型方法-单个
public <E> E getE(E e) {
return e;
} // 声明泛型方法-多个
public <E> E[] getArray(E[] arr) {
return arr;
} // 声明泛型方法-交互
public <E> void fromArrayToList(E[] arrayE, List<E> listE) {
for (E e : arrayE) {
listE.add(e);
}
} @Override
public String toString() {
return "ParentGeneric [name=" + name + ", id=" + id + ", t=" + t + "]";
} } /*
* 继承泛型类或接口时,可以指名泛型的类型
*
* 通常在DAO处理的时候,采用指名泛型类型(泛型就是某个Data Access Object)
* 如:public class StudentDAO extends AbstractDAO<Student>{内部CRUD方法}
* 同理: public class TeacherDAO extends AbstractDAO<Teacher>{内部CRUD方法}
*
* 分析源码:学习泛型方法
* public interface Collection<E> extends Iterable<E> {
* <T> T[] toArray(T[] a);
* }
*
*/ class SonOneGeneric<T> extends ParentGeneric<T> { } class SonTwoGeneric extends ParentGeneric<Integer> { }

  

Java高级——泛型的更多相关文章

  1. 从一知半解到揭晓Java高级语法—泛型

    目录 前言 探讨 泛型解决了什么问题? 扩展 引入泛型 什么是泛型? 泛型类 泛型接口 泛型方法 类型擦除 擦除的问题 边界 通配符 上界通配符 下界通配符 通配符和向上转型 泛型约束 实践总结 泛型 ...

  2. Java高级特性 第1节 集合框架和泛型

    Java中,存储多个同类型的数据,可以用数组来实现,但数组有一些缺陷: 数组长度固定不变,布恩那个很好的适应元素数量动态变化的情况 可以通过数组.length获取数组长度,却无法直接获取数组中实际存储 ...

  3. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  4. paip.java 架构师之路以及java高级技术

    paip.java 架构师之路以及java高级技术 1.    Annotation 设计模式... 概念满天飞.ORM,IOC,AOP. Validator lambda4j memcache. 对 ...

  5. Java高级之类结构的认识

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Java体系包括,各种版本的虚拟机,可执行文件,各种第三方类库,Java API类库,Java语言 ...

  6. 转载:[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    原文:http://www.cnblogs.com/wang-meng/p/5898837.html 一:继承.抽象类与接口区别.访问控制(private, public, protected,默认) ...

  7. [转] Java 的泛型擦除和运行时泛型信息获取

    原文链接 https://my.oschina.net/lifany/blog/875769 前言 现在很多程序员都会在简历中写上精通 Java.但究竟怎样才算是精通 Java 呢?我觉得不仅要熟练掌 ...

  8. Java之泛型浅解

    我觉得学习一个东西,首先得从概念上明白它大概是什么? “泛型”就是“参数化类型”,也就是是把类型当成了一种参数.之前我们看到得函数方法比如: public long add(int num1,int ...

  9. 用友网络科技Java高级开发面试题(2019)

    面试时间:2019年8月18日上午9:30 面试岗位:Java高级开发 面试形式:电话面试 这些天在boss上逛了下,看见北京Java开发工资比较诱人,便萌生了去北京的想法,做一名北漂的程序猿.约了几 ...

随机推荐

  1. LeetCode 674. Longest Continuous Increasing Subsequence最长连续递增序列 (C++/Java)

    题目: Given an unsorted array of integers, find the length of longest continuous increasing subsequenc ...

  2. CF1252J Tiling Terrace

    CF1252J Tiling Terrace 洛谷评测传送门 题目描述 Talia has just bought an abandoned house in the outskirt of Jaka ...

  3. Matlab各种拟合

    作者:Z-HE链接:https://zhuanlan.zhihu.com/p/36103034来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1) polyfit 代码 ...

  4. CentOS7 通过 devstack 安装 OpenStack

    安装前的准备 修改源 (可跳过) 将下载源变更到国内可以时下载速度大大提升 打开下面的文件 vim /etc/yum.repos.d/CentOS-Base.repo 将原来的注释掉改成: [base ...

  5. Unity Profiler 记录

    版本 Unity 2018.4.6f1 空包 development build 魅蓝 note3 OPPO R9 VIVO x9 华为 P8 青春版 小米 8 SE iphone se Other ...

  6. VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::

    我是将项目升级到从VS2012 升级VS2017, 报错如下 1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ...

  7. .NET西安社区「拥抱开源,又见 .NET:壹周年Party」活动简报

    「拥抱开源,又见 .NET」:壹周年Party  .NET西安社区一岁啦!!!!7月21日,伴随着「拥抱开源,又见 .NET」系列最后一次线下分享活动暨一周年Party圆满结束, .NET西安社区一岁 ...

  8. MyBatis-Generator 用法介绍

    ”工欲善其事,必先利其器“,古人说的很对,虽然不能做一个单纯的”工具帝“,但是自己有合适的工具集真的很关键.以前认识一个做逆向工程的高手,有自己的”反马套装“,其实不外乎就是 OD . IDA .Sy ...

  9. 明解JAVA 第二章答案

    练习2-1 编译错误,无法运行. 练习2-2 package candle1220; class Nightwatch{ public static void main(String[] args) ...

  10. vue项目使用Ueditor富文本编辑器总结

    我使用的是前端大佬封装的vue-ueditor-wrap插件,结合ueditor本身的压缩包开发的. 1.下载vue-ueditor-wrap: npm install vue-ueditor-wra ...