Java泛型类编程测试
2023-04-18 16:17:29 时间
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/217
package com.joshua317;
import java.util.*;
/**
* 编程要求:
* 1.定义一个泛型类Dao<T>,在其中定义一个map成员变量,map的键为string类型,值为T类型
* (1)public void save(String id, T entity),保存T类型对象到map成员变量中
* (2)public T get(String id),从map中获取id对应的T对象
* (3)public void update(String id, T entity),更新map中key为id的对象,内容为T对象entity
* (4)public List<T> list(),返回map中存放的所有T对象
* (5)public void delete(String id),删除map中指定key为id的对象
* 2.定义一个User类,设置三个私有属性,分别为int id,int age,String name;重写toString方法,显示属性信息
* 3.创建Dao类对象,分别调用Dao类的成员方法来操作User对象
* 4.使用Junit单元类进行单元测试
*/
public class Main {
public static void main(String[] args) {
Dao<User> userDao = new Dao<>();
User user1 = new User(1, 2, "red");
User user2 = new User(2, 3, "yellow");
User user3 = new User(3, 5, "blue");
userDao.save("001", user1);
userDao.save("002", user2);
userDao.save("003", user3);
System.out.println(userDao.get("002"));
System.out.println(userDao.list());
userDao.delete("003");
System.out.println(userDao.list());
user2 = new User(2, 3, "purple");
userDao.update("002",user2);
System.out.println(userDao.list());
}
}
class Dao<T> {
Map<String,T> map = new HashMap<>();
public void save(String id, T entity)
{
map.put(id, entity);
}
public T get(String id)
{
return map.get(id);
}
public void update(String id, T entity)
{
map.replace(id, entity);
}
public List<T> list()
{
ArrayList<T> arrayList = new ArrayList<>();
Set<String> keys = map.keySet();
for (String key: keys) {
arrayList.add(map.get(key));
}
return arrayList;
}
public void delete(String id)
{
map.remove(id);
}
}
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;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", age=" + age +
", name='" + name + ''' +
'}';
}
}
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/217
相关文章
- Jease 2.6发布 Java开源内容框架
- JVM调优总结:反思
- JVM调优总结:调优方法
- JVM调优总结:新一代的垃圾回收算法
- JVM调优总结:典型配置举例
- JVM调优总结:分代垃圾回收详述
- JVM调优总结:垃圾回收面临的问题
- JVM调优总结:基本垃圾回收算法
- JVM调优总结:一些概念
- 用Java GUI编写的画板程序
- Java的动态绑定机制
- jOOQ 2.0.2发布 Java的ORM框架
- Java中带复选框的树的实现和应用
- Java网络编程菜鸟进阶:TCP和套接字入门
- 甲骨文与谷歌专利权之争定于今年三月开审
- Java调用C/C++编写的第三方dll动态链接库
- 集成开发环境 NetBeans IDE 7.1正式版发布
- kangle 2.7.5紧急发布 防hash碰撞攻击
- 东方通技术引领模式为国产软件“争权”
- UML中关联,组合与聚合等关系的辨析