具有以下声明的类将编译并运行,但它是否会导致内存发生不必要的事情?
public class Node<T extends Node<T>> extends NodeContainer<T>
我担心它最终可能会导致某种类型的无限递归:
是Node<T extends Node<T>>
意思是Node<T extends Node<T extends Node<T(...)>>>
等等?
最佳答案
不,内 stub 本不会发生任何事情。由于类型删除生效,除了运行时强制转换之外,泛型参数在运行时不会被考虑,并且实际上会被删除。编译器只是确保 T
是否扩展或实现Node<T>
.
关于java - 关于 Java 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284731/