需求:
定义个泛型类 DAO
分别创建以下方法:
(1) public void save(String id,T entity): 保存 T 类型的对象到 Map 成员变量中
(2) public T get(String id):从 map 中获取 id 对应的对象
(3) public void update(String id,T entity):替换 map 中key为id的内容,改为 entity 对象
(4) public List
(5) public void delete(String id):删除指定 id 对象
定义一个 User 类:
该类包含:private成员变量(int类型) id,age;(String 类型)name。
创建 DAO 类的对象, 分别调用其 save、get、update、list、delete 方法来操作 User 对象,
使用 Junit 单元测试类进行测试。
实现:
User
package test;public class User {private int id;private int age;private String name;public User(int id, int age, String name) {this.id = id;this.age = age;this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "User{" +"id=" + id +", age=" + age +", name='" + name + '\'' +'}';}}
DAO
package test;import java.util.*;public class DAO<T> {//泛型类private Map<String, T> map = new HashMap<>();public T get(String id) {return map.get(id);}public void update(String id,T entity) {map.put(id, entity);}//返回 map 中存放的所有 T 对象//遍历map [k-v],将map的 所有value(T entity),封装到ArrayList返回即可public List<T> list() {//创建 ArraylistList<T> list = new ArrayList<>();//遍历mapSet<String> keySet = map.keySet();for (String key : keySet) {//map.get(key) 返回就是 User对象->ArrayListlist.add(map.get(key));//也可以直接使用本类的 get(String id)}return list;}public void delete(String id) {map.remove(id);}public void save(String id,T entity) {//把entity保存到mapmap.put(id, entity);}}
Main
package test;import org.junit.Test;import java.util.List;public class Main {public static void main(String[] args) {}@Testpublic void testList() {//说明//这里我们给T 指定类型是UserDAO<User> dao = new DAO<>();dao.save("001", new User(1,10,"jack"));dao.save("002", new User(2,18,"king"));dao.save("003", new User(3,38,"smith"));List<User> list = dao.list();System.out.println("list=" + list);dao.update("003", new User(3, 58, "milan"));dao.delete("001");//删除System.out.println("===修改后====");list = dao.list();System.out.println("list=" + list);System.out.println("id=003 " + dao.get("003"));//milan}}/*** 定义个泛型类 DAO<T>,在其中定义一个Map 成员变量,Map 的键为 String 类型,值为 T 类型。** 分别创建以下方法:* (1) public void save(String id,T entity): 保存 T 类型的对象到 Map 成员变量中* (2) public T get(String id):从 map 中获取 id 对应的对象* (3) public void update(String id,T entity):替换 map 中key为id的内容,改为 entity 对象* (4) public List<T> list():返回 map 中存放的所有 T 对象* (5) public void delete(String id):删除指定 id 对象** 定义一个 User 类:* 该类包含:private成员变量(int类型) id,age;(String 类型)name。** 创建 DAO 类的对象, 分别调用其 save、get、update、list、delete 方法来操作 User 对象,* 使用 Junit 单元测试类进行测试。** 思路分析* 1. 定义User类* 2. 定义Dao<T>泛型类*/

