queryMe方法返回ArrayIterator 。 queryYou方法返回ArrayIterator 。
public ArrayIterator<Object> query(String table, String field, String criterion)
{
ArrayIterator<Object> result = null;
if (table.equals("MyTable")
{
result = MyTable.queryMe(field, criterion);
}
else if (table.equals("YourTable")
{
result = YourTable.queryYou(field, criterion);
}
return result;
}
我遇到一个错误,说
ArrayIterator<Me> and ArrayIterator<Java.lang.object> are incompatible types.
有什么建议么?
最佳答案
这是您所追求的技巧。首先将其强制转换为原始ArrayIterator,然后强制转换为ArrayIterator 。
ArrayIterator meIter =(ArrayIterator)结果。
更好的方法是更改您的方法以返回ArrayIterator 并将结果更改为相同。
***刚刚看到您的更新。看来该方法正在尝试返回各种类型的ArrayIterator,因此返回类型。
// Would be nice if the 2 types shared a common super type.
public ArrayIterator<Object> query(String table, String field, String criterion)
{
// WARNING, this is a raw generic type, and provides no type safety
ArrayIterator result = null;
if (table.equals("MyTable")
{
result = MyTable.queryMe(field, criterion);
}
else if (table.equals("YourTable")
{
result = YourTable.queryYou(field, criterion);
}
return (ArrayIterator<Object>) result.
}
关于java - Java转换ArrayIterator <Object>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16002037/