我想创建一个可以扩展运行时提供的未知类的类。我以为我可以这样做:
public class Foo<T extends Bar> extends T {}
但这不起作用。有没有办法做到这一点?
答案 0 :(得分:1)
不是没有一些疯狂的运行时代码生成。 Java的泛型与C ++的模板不同:在内部,T
被简单地视为Object
,并且向上和向下呈现为为了您的代码的利益所必需的。因此,虽然C ++模板是针对特定T
实例化的,并且可以在编译时决定是否有效,但在Java中,继承的机制要求在类定义本身中确定实际的基类。