我正在试图弄清楚Java泛型,并且我在理解这个类中声明的一些方法时遇到了一些麻烦:
abstract class Trie <T extends HasPoint> {
abstract <T> Trie insert(T point);
abstract <T> Trie delete(T point);
}
它可能与泛型无关,但为什么在方法名称之前需要/使用Trie
。很抱歉,如果这是一个基本问题,在这里有大量的答案,但我还没有找到这个具体的事情。
答案 0 :(得分:-1)
基本答案是是,您需要“方法名前的Trie”。它是返回类型。 但是你应该以不同的方式使用它。
更多解释:
abstract <T> Trie insert(T point);
是定义方法的所有可能方法中最糟糕的。适当的替代方案
abstract void insert(T point);
或
abstract Trie<T> insert(T point);
第一个选项不会返回任何内容,只需要插入即可
第二个选项返回Trie<T>
的实例(this
或新实例),以便您在必要时链接方法调用。
原始代码有多个问题:
T
答案 1 :(得分:-3)
Trie
这是此方法的返回类型
像abstract boolean insert(T point);
一样会返回布尔值