该类定义的工具类,用于展示泛型的使用

    自定义工具类:

    1. package Day01_Demo.Test07;/*
    2. @create 2020--12--21--15:53
    3. */
    4. import org.apache.commons.beanutils.BeanUtils;
    5. import java.util.Map;
    6. public class MyBeanUtils {
    7. /**
    8. * Class<T>此时这个T就是一个变量,在运行的时候,接收具体的类型,例如:Uset
    9. * 变量必须先定义再使用
    10. * 泛型变量的定义方式,修饰符<变量名> 返回值
    11. */
    12. public static <T> T populate(Class<T> beanClass, Map<String, String[]> properties) {
    13. //1.使用反射机制实例化
    14. try {
    15. T bean = beanClass.newInstance();
    16. //2.填充数据
    17. BeanUtils.populate(bean,properties);
    18. //3.返回数据
    19. return bean;
    20. } catch (Exception e) {
    21. throw new RuntimeException(e);
    22. }
    23. }
    24. }

    测试类:

    1. package Day01_Demo.Test07;/*
    2. @create 2020--12--21--15:58
    3. */
    4. import Day01_Demo.Test04.User;
    5. import org.junit.Test;
    6. import java.util.HashMap;
    7. import java.util.Map;
    8. /**
    9. * 测试自定义泛型的BeanUtils
    10. */
    11. public class MyBeanUtilsTest {
    12. //使用populate填充数据
    13. @Test
    14. public void test1() {
    15. //1.模拟数据
    16. Map<String, String[]> map = new HashMap<>();
    17. map.put("uid", new String[]{"U9527"});
    18. map.put("username", new String[]{"jack","rose"});
    19. map.put("password", new String[]{"000"});
    20. User user = MyBeanUtils.populate(User.class, map);
    21. System.out.println(user);
    22. }
    23. }