我做了
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实现
为什么会这样,以及如何解决它?
答案 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>();