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