我不太确定如何问这个问题,这也是我不确定标题等的原因。开始。
假设你有一个对象Foo foo = new Foo()
。是否可以编写类似的代码new ArrayList<foo.getClass()>()
,在运行时相当于new ArrayList<Foo>()
?
另一个但相关的问题是:假设该类Foo
延伸Exception
。那么是否可以写类似的东西
try{
// ...
} catch(foo.getClass() e) {
//
}
这将转化为
try{
// ...
} catch(Foo e) {
//
}
?
这样做是否会很可怕并不是重要的部分。不过,无论如何,我还是想听听合格的意见。
不,这在 Java 语言规范中是不可能的。泛型参数纯粹是一种编译时类型安全机制,因此在运行时定义它们是没有意义的。
代码中的类文字不能与Class<T>
对象,由于它们本质上不同的角色。后者仅在运行时有意义,并且可以动态变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)