4

有什么区别:

public <E>int  compareTo(E e) // first line (compilation error)

public int compareTo(E e) // second line (OK)

只有在第二行我才能通过编译器。这是否意味着需要确保该特定元素在类中被普遍声明?否则,您可以放入任何元素并且没有多大意义。我是否以正确的方式看待它?提前致谢。

4

2 回答 2

2

将类型参数声明放在返回类型之前:

public <E> int compareTo(E e) 

你也可以有一个类级别的<E>类型参数,但是方法级别的参数会影响它。在这个问题中阅读更多关于它的信息。

于 2013-03-26T10:59:27.273 回答
0
public <E extends String> int compareTo(E o) {  //1
}

您可以考虑任何课程,而不是String根据您的编程需要。

对于正在实现Comparable接口的类,考虑了上述场景。

class SimpleClass<E> {  // 2
    E var;  
    public <E> int compareTo(E o) {         
        return 0;
    }
}

如果我们不实现Comparable接口,上面 //2 的类将起作用。E不需要扩展字符串(任何其他类)。

于 2013-03-26T11:01:13.767 回答