2012-11-09 175 views
0

我正在爲抽象對象實現堆。 現在我能夠實現一個堆棧了,因爲堆棧不需要進行比較。 但是堆需要比較。 所以我有Object AObject B。我可以確保在heap中的Object具有相同的類別,並且它們可以被排序(即該類具有compareTo函數知道if A<B, A=B, or A>B)。 但是,如果我使用A.compareTo(B),則會出現語法錯誤,指出compareTo沒有爲對象定義。 我做了一些研究,發現對象沒有實現可比性。 我怎麼能去這個問題。 謝謝。Java中的抽象對象比較

+2

實現Comparable接口,當然。 – duffymo

+0

我已經實現了可比較的接口。但是,Object本身並沒有實現Comparable接口。 –

+2

您是否在'public class ClassName'之後編寫了'implements Comparable'?只包含一個'compareTo'方法不會使它成爲一個Comparable。 – irrelephant

回答

2

如果所有的對象是同一個祖先的後代,其請執行Comparable?那麼在這種情況下,您可以在代碼中使用該類型而不是Object

1

對象不實現可比較。您應該創建實現了Comparable接口的MyObject。

class MyObject implements Comparable<Object>{ 
    ... 
    @Override 
    public int compareTo(Object arg0) { 
     // custom logic 
     return 0; 
    } 
} 
1

-那麼你可以使類實現java.lang.Comparable接口與Object類型參數

public class Test implements Comparable<Object>{ 

    public int compareTo(Object o){ 

     // 

    } 

}