Java Comparator相关

时间:2015-01-11 18:36:11

标签: java

我是Java的新手,所以想确认我们可以拥有不同类型的对象 在比较方法实现比较器接口时。 喜欢。比较(员工,部门)。或者我们将转发相同类型的对象Ex,员工或部门。如果您详细解答,对我有帮助。 请确认一下。谢谢 沙希德

1 个答案:

答案 0 :(得分:2)

您可以实施以下方法:

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