如何使用Vector和Comparable接口

时间:2014-05-10 12:26:09

标签: java

我做了

public class Employee implements Comparable <Object> {
    public int compareTo (Object other ){

我做得很好(它工作正常)并从其他类中调用它:

import java.util.Vector;

public class Firm {

    private Vector <Employee> employees = new Vector<Employee>();

并在同一类中使用(Firm)Comperator Vector in function:

public void SortVector(Vector <Comparable> vector) {

并用:

调用它
SortEmployeesBy(this.employees); ////Error is here

并且在这一行中编译器说:

  

Firm类型中的SortVector(Vector)方法不适用于参数(Vector)&#34;

注意:我只需要使用vector并需要多次使用SortVector,因此我需要使用比较器,因为我有很多矢量和其他类,如Employee,customer,Artist ...每个都有自己的Comparable实现

为什么会这样,以及如何解决它?

1 个答案:

答案 0 :(得分:2)

尝试任何一个

public void SortEmployeesBy(Vector<? extends Comparable<Object>> vector) {..}
public void SortEmployeesBy(Vector<Employee> vector) {...}

而不是使用

public void SortEmployeesBy(Vector<Comparable> vector) {...}

- 编辑 -

您可以尝试使用Firm类进行参数化,如下所示使其更通用

class Firm<T extends Comparable<Object>> {

    private Vector<T> employees = new Vector<T>();

    public void SortEmployeesBy(Vector<T> vector) {...}
}

Firm<Employee> f = new Firm<Employee>();