我正在学习使用泛型类型的 Java 编程,并且遇到了一个可能非常基本的问题。
另外两个片段之间的区别在哪里?
1.)
public void build(House house) {
// work only with house objects that extending House
}
2.)
public <T extends House> void build(T house) {
// work only with house objects that extending House
}
最佳答案
这两种方法在可以接受的参数方面没有区别;但是,在后一个示例中,确实可以访问特定类型 T
.无论如何,这个例子并没有说明泛型的力量。
例如考虑一个 LinkedList
的 Node<T>
对象。我们可以定义一个包装器,Node<T>
,它可以容纳任何类型的对象。这是一个非常有用的结构,因为它允许我们编写一段代码,可用于许多不同的对象。
关于Java泛型基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19954865/