从编译器内部角度来看,这是一个问题。
我对泛型感兴趣,而不是模板(C ++),所以我用C#标记了问题。不是Java,因为AFAIK两种语言的泛型在实现上有所不同。
当我查看不带泛型的语言时,它非常简单,您可以验证类定义,将其添加到层次结构中就可以了。
但是如何处理泛型类,更重要的是如何处理对它的引用?如何确保每个实例的静态字段都是奇异的(即每次解析通用参数时)。
假设我看到一个电话:
var x = new Foo<Bar>();
是否将新Foo_Bar
类添加到层次结构?
更新:到目前为止,我仅找到2条相关的帖子,但是即使它们在“如何自己做”的意义上也没有涉及太多细节: