我是Java新手,想要確認在比較方法中實現比較器接口時能否使用不同類型的對象 。 贊。比較(員工,部門)。或加班,我們將通過相同類型的對象Ex,員工或部門。如果你詳細給出答案,這將對我有所幫助。 請確認我.Thanks提前 沙希德Java比較器相關
回答
您可以實現類似的方法:
int compare(Object a, Object b);
,如果你想比較桔子和蘋果。如果你需要更嚴格一些,你可以(應該!)定義比較對象需要共同擁有的東西。然後,你可以用一個接口開始:
public interface CorporateObject
{
int getUselesnessFactor();
}
,然後請爲Employee和Department類實現它:
public class Employee implements CorporateObject
{...
public class Department implements CorporateObject
{...
最後,比較方法將如下所示:
public int compare(CorporateObject a, CorporateObject b){
if(a.getUselesnessFactor() < b.getUselesnessFactor()) return -1;
if(a.getUselesnessFactor() > b.getUselesnessFactor()) return 1;
return 0;
}
你會用這樣的方法:
int result;
Employee boss = new Employee();
Employee john = new Employee();
Department nosepickers = new Departement();
Department slackmasters = new Department();
result = compare(boss, john); // employee to employee
result = compare(nosepickers, slackmasters); // dept to dept
result = compare(boss, nosepickers); // employee to dept
result = compare(slackmasters, john); // dept to employee
等
我們不能通過Employee和Department引用來比較(Employee emp,Department dept)而不是CorporateObject,我認爲這也應該起作用...如果我錯了,請幫我理解你的概念(corporateObject a,CorporateObject b)。根據你的代碼,我的理解是比較方法總是採用相同類型的引用。請幫助 – shahid
查看編輯答案 - 您可以以任意組合傳遞。這就是接口的用途 - 只要它們實現了通用接口,比較方法並不關心你傳遞的是什麼CorporateObject。 – ptrk
謝謝你的寶貴意見。它幫助我瞭解了這個概念更加清晰。 – shahid
- 1. Java - 比較器
- 2. 相等對象比較:JAVA
- 3. Java PriorityQueue比較器
- 4. Java比較器compareToIgnoreCase
- 5. Java TreeMap比較器
- 6. Java接口比較器靜態比較
- 7. Java比較器和可比較
- 8. 繼承相等比較器
- 9. Java比較器的性能?
- 10. Java泛型比較器
- 11. Java +比較器+排序
- 12. Java界面/比較器
- 13. InetSocketAddress的Java比較器
- 14. 實現Java比較器
- 15. Java序列化比較器
- 16. SQL - 比較不相關的表
- 17. R - 比較計算的相關性
- 18. 比較R中的許多相關性
- 19. 使用java比較相同日期
- 20. java - 如何比較相同的日期
- 21. 比較/相交比較標準
- 22. Java - Enum與開關的比較 - Case Statement
- 23. 比較比較器的utils
- 24. 比較在Java
- 25. 比較的Java
- 26. Java - 比較類?
- 27. Java Array比較
- 28. 如何實現級聯比較器,級聯相關的對象?
- 29. 即使密碼相同,比較驗證器也始終關閉
- 30. Java比較器按相反順序排序
你爲什麼要這麼做? –
通過實現接口可比較 – tung
您可以將它們作爲「對象」進行比較。 Java中的所有對象都從Object類繼承。 – khelwood