zoukankan      html  css  js  c++  java
  • 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中判断两个列表是否相等
    chrome:插件、跨域、调试....
    mac 开发环境采坑
    webpack升级踩坑
    js-使用装饰器去抖
    React setState 笔试题,下面的代码输出什么?
    react 解决:容器组件更新,导致内容组件重绘
    centos使用ngnix代理https
    javascript 理解继承
    js 数据监听--对象的变化
  • 原文地址:https://www.cnblogs.com/gzhcsu/p/11703389.html
Copyright © 2011-2022 走看看