java向下广播导致方法不适用错误

java向下广播导致方法不适用错误,java,collections,Java,Collections,我正在尝试向下转换数据库对象的函数。我得到: 类型中的方法GetAsStringArray(HashMap) dbObject不适用于参数 (HashMap) 当我尝试调用GetAsStringArray()时。以下是我的测试代码: dbObject基类: public class dbObject implements Comparable<dbObject> { protected long id; public long getId() {

我正在尝试向下转换数据库对象的函数。我得到:

类型中的方法GetAsStringArray(HashMap) dbObject不适用于参数 (HashMap)

当我尝试调用GetAsStringArray()时。以下是我的测试代码: dbObject基类:

public class dbObject  implements Comparable<dbObject> {
    protected long id;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public static dbObject[] GetAsArray(HashMap<Long,dbObject> map) {
        Collection<dbObject> list = map.values();
        dbObject[] ar = list.toArray(new dbObject[] {});
        Arrays.sort(ar);
        return ar;
    }

    public static String[] GetAsStringArray(HashMap<Long,dbObject> map) {
        Vector<String>vStrings = new Vector<String>();
        Collection<dbObject> list = map.values();
        dbObject[] ar = list.toArray(new dbObject[] {});
        Arrays.sort(ar);
        for (dbObject o : ar)
            vStrings.add(o.toString());
        return (String[]) vStrings.toArray(new String[] {});
    }

    @Override
    public int compareTo(dbObject another) {
        return (int)(this.getId() - another.getId());
    }

}
错误是:

public static void main(String[] args)
{
    HashMap<Long,dbEmployee>mapEmployees = new HashMap<Long,dbEmployee>();
    dbEmployee.GetAsStringArray(mapEmployees);
}
publicstaticvoidmain(字符串[]args)
{
HashMapEmployees=新HashMap();
dbEmployee.GetAsStringArray(mapEmployees);
}

注意:有些my dbObjects将有自己的compareTo()函数(一些对象在db中有一个字段来覆盖默认的排序顺序),但大多数项目只是按id排序。

您需要重新定义方法,因此:

public static dbObject[] GetAsArray(HashMap<Long, ? extends dbObject> map) {
    Collection<? extends dbObject> list = map.values();
    dbObject[] ar = list.toArray(new dbObject[] {});
    Arrays.sort(ar);
    return ar;
}
publicstaticdbobject[]GetAsArray(HashMap){

集合您需要重新定义方法,因此:

public static dbObject[] GetAsArray(HashMap<Long, ? extends dbObject> map) {
    Collection<? extends dbObject> list = map.values();
    dbObject[] ar = list.toArray(new dbObject[] {});
    Arrays.sort(ar);
    return ar;
}
publicstaticdbobject[]GetAsArray(HashMap){
收集