使用泛型(表公共的增加改查架子)

时间:2021-08-11
本文章向大家介绍使用泛型(表公共的增加改查架子),主要包括使用泛型(表公共的增加改查架子)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

场景假设

有一个男孩类和女孩类 都有增删改查功能 可以分别封装 男孩 和 女孩的dao
如果后续来个老人 未成年等其他需求 需要再封装 十个 一百个 很麻烦

Boy

package com.generci.day01.sec03;

public class Boy {
    private Integer id;

    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Boy(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Boy{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

BoyDao

package com.generci.day01.sec03;


import java.util.List;

/**
 * 关于男孩子的增删改查操作
 */
public class BoyDao implements common<Boy> {
    @Override
    public void add(Boy boy) {
        System.out.println(boy);
    }

    @Override
    public void update(Integer index) {

    }

    @Override
    public void remove(Integer index) {

    }

    @Override
    public List<Boy> query() {
        return null;
    }
}

public class BoyDao implements common<Boy> 实现了common接口 指定了泛型
Boy类 add方法 形参变成了Boy boy

Gril

package com.generci.day01.sec03;

public class Gril {
    private static GrilDao grilDao = new GrilDao();
    private String name;
    private Integer id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Gril{" +
                "name='" + name + '\'' +
                ", id=" + id +
                '}';
    }
}

GrilDao

package com.generci.day01.sec03;

import java.util.List;

public class GrilDao implements common<Gril> {
    @Override
    public void add(Gril gril) {
        System.out.println(gril);
    }

    @Override
    public void update(Integer index) {

    }

    @Override
    public void remove(Integer index) {

    }

    @Override
    public List<Gril> query() {
        return null;
    }
}

BoyDao解释

common

package com.generci.day01.sec03;

import java.util.List;
/**
 * 增删改查通用
 */
public interface common<T> {
    /**
     * 增加
     * @param t
     */
    void add(T t);

    /**
     * 修改
     * @param index
     */
    void update(Integer index);


    /**
     * 删除
     * @param index
     */
    void remove(Integer index);


    /**
     * 查询
     * @return
     */
    List<T> query();
}

没实现common接口 不知道T类型是什么

test

package com.generci.day01.sec03;

import org.junit.Test;

public class test {
    private static GrilDao grilDao = new GrilDao();
    private static BoyDao boyDao = new BoyDao();

    @Test
    public void test(){
        Gril gril = new Gril();
        gril.setId(2);
        gril.setName("yyll");
        grilDao.add(gril);

        Boy boy = new Boy(666, "wwbao");
        boyDao.add(boy);

    }
}

输出

即使再小的帆也能远航

原文地址:https://www.cnblogs.com/juanbao/p/15127297.html