泛型实例化

泛型实例化泛型实例化:类型可以通过参数来实现,例如泛型中的Tt,但是我想生成T对象,那怎么实现呢?按照以往的经验,我们很容易想到这种方式:publicclassTestT{Tt;publicTcreate(){t=newT();}}此时,由于T的具体类型我们无法获得,所以newT()是无法通过编译的。换一种思路,我们不妨使用反射机

大家好,欢迎来到IT知识分享网。泛型实例化"

泛型实例化 :类型可以通过参数来实现,例如泛型中的T t,但是我想生成T对象,那怎么实现呢?按照以往的经验,我们很容易想到这种方式:

public class Test<T> { T t; public T create(){ t = new T(); } }

此时,由于T的具体类型我们无法获得,所以new T()是无法通过编译的。换一种思路,我们不妨使用反射机制,通过T的Class对象的newInstance()方法来获取它的实例,而T的Class对象表示为:Class,所以生成T对象的代码如下所示:

public class Test<T> { T t; public void create(Class<T> clazz){ try { t = clazz.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21740.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信