该类定义的工具类,用于展示泛型的使用
自定义工具类:
package Day01_Demo.Test07;/*
@create 2020--12--21--15:53
*/
import org.apache.commons.beanutils.BeanUtils;
import java.util.Map;
public class MyBeanUtils {
/**
* Class<T>此时这个T就是一个变量,在运行的时候,接收具体的类型,例如:Uset
* 变量必须先定义再使用
* 泛型变量的定义方式,修饰符<变量名> 返回值
*/
public static <T> T populate(Class<T> beanClass, Map<String, String[]> properties) {
//1.使用反射机制实例化
try {
T bean = beanClass.newInstance();
//2.填充数据
BeanUtils.populate(bean,properties);
//3.返回数据
return bean;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
测试类:
package Day01_Demo.Test07;/*
@create 2020--12--21--15:58
*/
import Day01_Demo.Test04.User;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
/**
* 测试自定义泛型的BeanUtils
*/
public class MyBeanUtilsTest {
//使用populate填充数据
@Test
public void test1() {
//1.模拟数据
Map<String, String[]> map = new HashMap<>();
map.put("uid", new String[]{"U9527"});
map.put("username", new String[]{"jack","rose"});
map.put("password", new String[]{"000"});
User user = MyBeanUtils.populate(User.class, map);
System.out.println(user);
}
}