2014-02-06 108 views
0

你好我試圖通過使用與接口可比擴大仿製藥比較兩個對象:比較泛型

public class Tree<K extends Comparable<K>> 
{ 
    Node<K> treeNode; 

    // Some initialization stuff 

    public void test(Node<K> node) 
    { 
     // Some code 

     // This line fails 
     if(node.getKey() > treeNode.getKey()) 
     { ... } 

     // Rest of the code 
    } 
} 

public interface Node<K extends Comparable<K>> 
{ 
    // Some code 
    public K getNode(); 

    // Some more code 
} 

但由於某些原因,比較運營商無法識別。我認爲通過擴展可比性,我可以開始使用這樣一個運營商。我究竟做錯了什麼。謝謝。

回答

3

Comparable不會讓你用<>比較,就像ListMap不要讓你使用[]對項目的訪問。您需要調用compareTo方法,該方法將通過返回小於,大於或等於0的整數來指示比較結果。

3

在Java中沒有運算符重載。因此,即使對象實現了Comparable,也不能使用>。您必須改用compareTo()