Tag: type parameter

Java中的嵌套类型参数

这是一个我编写的实例代码的简化示例,所以如果它有点人为,我会道歉。 我想要做的是从单个嵌套类型参数中有效地获取两个类型参数。 我很确定这是不可能的,但我想我会试一试。 //Not legal java code public class Foo<C extends Collection> { //where T is another type parameter private C coll; public Foo(C coll) { this.coll = coll; } public void add(T elem){ this.coll.add(elem); } //UPDATED TO ADD GETTER /** * I may need to retrieve the collection again, or pass it * on […]

Java:有界类型的getClass()

当我在使用仿制药时,我发现了一些东西。 在下面的示例中, doStuff1编译但doStuff2不编译: public void doStuff1(T value) { Class theClass = value.getClass(); } public void doStuff2(T value) { Class theClass = value.getClass(); } 所以,我查找了Object.getClass()的文档,发现了这个: 实际的结果类型是Class <? extends | X |> where | X | 是擦除调用getClass的表达式的静态类型。 这让我有点好奇。 为什么getClass()这种方式设计? 如果适用的话,我可以理解将类型转换为它们的原始类,但是我没有明显的理由说明为什么它们必须使它同时杀掉T 有没有一个特定的原因,它也可以摆脱它,或者它只是一个普遍的“让我们摆脱一切因为它更容易;谁会永远需要它”的方法?