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/

10-11 18:55