Java高级——泛型

Posted betterLearing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java高级——泛型相关的知识,希望对你有一定的参考价值。

本文主要讲述泛型的使用

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高级——泛型的主要内容,如果未能解决你的问题,请参考以下文章

Java——泛型

JAVA高级--java泛型

Java这个泛型高级特性,很多人还没用过!

Java高级——泛型

Java高级 —— 泛型

Java入门 - 高级教程 - 03.泛型