欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义设计泛型类

程序员文章站 2024-03-15 10:52:35
...

设计一个泛型类,实现增删改查操作:

import java.util.*;

public class DAO<T> {
    private Map<String,T> map = new HashMap<String,T>();
    //保存 T 类型的对象到 Map 成员变量中
    public void save(String id,T entity){
        map.put(id,entity);
    }
    //从 map 中获取 id 对应的对象
    public T get(String id){
        return map.get(id);
    }
    //替换 map 中key为id的内容,改为 entity 对象
    public void update(String id,T entity){
        if(map.containsKey(id)){
            map.put(id,entity);
        }
    }
    //返回 map 中存放的所有 T 对象
    public List<T> list(){
        ArrayList<T> list = new ArrayList<>();
        Collection<T> values = map.values();
        for(T t : values){
            list.add(t);
        }
        return list;
    }
    //删除指定 id 对象
    public void delete(String id){
        map.remove(id);
    }
}

import java.util.List;
public class DAOTest {

    public static void main(String[] args) {
        DAO<User> dao = new DAO<User>();
		//添加数据:
        dao.save("1001",new User(1001,34,"周杰伦"));
        dao.save("1002",new User(1002,20,"昆凌"));
        dao.save("1003",new User(1003,25,"蔡依林"));
		//修改数据:
        dao.update("1003",new User(1003,30,"方文山"));
		//删除数据:
        dao.delete("1002");
		//列出数据:
        List<User> list = dao.list();
        list.forEach(System.out::println);
    }
}
控制台输出结果为:
User{id='1003', age=30, name='方文山'}
User{id='1001', age=34, name='周杰伦'}