dao中的坑-java泛型真实类型的方式

2019-05-14  本文已影响0人  潇潇洒洒的写书

前记

在写到dao层的使用,遇到一个泛型的问题,如何更智能的实现mybits里面对应方法。

  1. 动态的创建子类
  2. asm操作字节码
  3. 以下是spring-core的实现,他其实是利用动态的创建子类解决这一问题。他采用的是java的反射来实现的子类。
public class Main {

    private List<Map<String, List<Object>>> list = new ArrayList<>();

    public static void main(String[] args) throws NoSuchFieldException {
        // 获取成员泛型参数类型
        Field field = Main.class.getDeclaredField("list");
        ResolvableType resolvableType = ResolvableType.forField(field);
        System.out.println(resolvableType.getGeneric(0));
    }

}

参考资料

上一篇 下一篇

猜你喜欢

热点阅读