使用泛型(表公共的增加改查架子)
时间: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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python实现停车管理系统
- 浅谈Pycharm调用同级目录下的py脚本bug
- Python中logging.NullHandler 的使用教程
- Python中利用aiohttp制作异步爬虫及简单应用
- Linux内核设备驱动之系统调用笔记整理
- python3实现名片管理系统
- Linux IO多路复用之epoll网络编程
- 浅谈python在提示符下使用open打开文件失败的原因及解决方法
- Linux内核设备驱动之内核的调试技术笔记整理
- Python检查和同步本地时间(北京时间)的实现方法
- thinkPHP5.1框架使用SemanticUI实现分页功能示例
- python实现名片管理系统
- Python unittest 简单实现参数化的方法
- CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)
- php的instanceof和判断闭包Closure操作示例