首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用javassist创建方法时,如何赋值泛型类int方法返回类型?

使用javassist创建方法时,如何赋值泛型类int方法返回类型?
EN

Stack Overflow用户
提问于 2019-03-06 12:10:21
回答 1查看 185关注 0票数 0

我想用javassist来创建一个类似这样的方法:

代码语言:javascript
复制
public List<String> queryList(Long id) { return new ArrayList<String>();}

但是,如何将泛型类类型"String“赋值给List?

EN

回答 1

Stack Overflow用户

发布于 2019-03-15 07:06:35

这是不可能的。请参阅javassist documentation

的泛型是通过擦除技术实现的。编译之后,所有的类型参数都会被删除。例如,假设您的源代码声明了一个参数化类型Vector:

代码语言:javascript
复制
Vector<String> v = new Vector<String>();
  :
String s = v.get(0);

编译后的字节码相当于以下代码:

代码语言:javascript
复制
Vector v = new Vector();
  :
String s = (String)v.get(0);

因此,编译后的方法将如下所示:

代码语言:javascript
复制
public List queryList(Long id) { return new ArrayList();}

在幕后,如果需要,可以转换为所需的类型。另请参阅:Type Erasure in Java Explained

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55015432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档