Discuss / Java / 关于 getParameterrizedTyped() 的实现

关于 getParameterrizedTyped() 的实现

Topic source

我内部使用的是 Class.getTypeParameters() 这个函数,您的项目里使用了 Class.getGenericSuperclass() 这个函数。

我看了一下两个函数的文档,大概想了一下,是不是因为运行时多态的原因, getParameterrizedTyped() 是在 UserDao 作为单例初始化的时候被调用的,实际是要获取父类的泛型实际类型,所以 getTypeParameters() 会返回为空?应该是这个原因吧。

哎,还是得好好学英语,好多语法都忘了

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你就去stackoverflow搜 get generic type from superclass

验证一下代码能跑通,自己包装一个方法就行

这种样板代码,没必要自己花时间研究

好的,谢谢老师

超超耳子

#4 Created at ... [Delete] [Delete and Lock User]

1.纯java解决方案

(Class) ((ParameterizedType) SubGen.class.getGenericSuperclass()).getActualTypeArguments()[0];

2.Spring解决方案

GenericTypeResolver.resolveTypeArguments(SubGen.class, Gen.class)[0];


  • 1

Reply