1、编程题Homework01.java
定义个泛型类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单元测试类进行测试
JUnit
为什么需要JUnit
1、一个类有很多功能代码需要测试,为了测试,就需要写入到main方法中
2、如果有多个功能代码测试,就需要来回注销,切换很麻烦
3、如果可以直接运行一个方法,就方便很多,并且可以给出相关信息就好了 -》 JUnit
import org.junit.jupiter.api.Test;
/**
* @ClassName JUnit_
* @Description
* @Author 小黄debug
* @Date 2022/3/17 20:59
* @Version 1.0
**/
public class JUnit_ {
public static void main(String[] args) {
//传统方式
//new JUnit_().m1();
//new JUnit_().m2();
}
@Test
public void m1(){
System.out.println("m1方法被调用");
}
@Test
public void m2(){
System.out.println("m2方法被调用");
}
}
ClassName Homework01
* @Description
* @Author 小黄debug
* @Date 2022/3/17 20:45
* @Version 1.0
**/
public class Homework01 {
@Test
public void testList(){
//这里我们给这个T指定的类型是User
DAO<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,28,"smith"));
List<User> list = dao.list();
System.out.println("list="+list);
dao.update("003",new User(3,58,"milan"));
List<User> list2 = dao.list();
System.out.println("list="+list2);
}
}
class DAO<T>{
private Map<String, T> map = new HashMap<>();
public void save(String id,T entity){
map.put(id,entity); //保存T类型的对象到Map成员变量中
}
public T get(String id){
return map.get(id); //从map中获取id对应的对象
}
public void update(String id,T entity){
map.put(id,entity); //替换map中key为id的内容,改为entity
}
public List<T> list(){ //返回map中存放的所有T对象
List<T> list = new ArrayList<>();
// Iterator<String> iterator = map.keySet().iterator();
// while (iterator.hasNext()) {
// String next = iterator.next();
// list.add(map.get(next));
// }
Set<String> strings = map.keySet();
for (String string : strings) {
list.add(map.get(string));
}
return list;
}
public void delete(String id){
map.remove(id); //删除指定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 + '\'' +
'}';
}
}