大家好,明天之前可以告诉我吗?
嗯, 我不使用 java.util.iterator 来创建我的迭代器接口(interface),只是创建我自己的所以
我有 2 个迭代器:AccountIterator/FileIterator,我的目标是将抽象对象“Account”和对象“File”迭代到“default”包中的主类
(还有2个扩展为AbstractAccount.class(BasicClass.class/PremiumClass.class,并且AbstractAccount.class实现了Account.interface)
这是我的迭代器接口(interface):
package cs;
public interface Iterator<E> {
public void init() ;
public boolean hasNext();
public E next();
}
这是我的帐户迭代器
我不能使用类型转换,有什么想法吗 抱歉,英语不好
最佳答案
您已使用类型 E
对您的类进行了参数化,但您的帐户数组的类型为 Account
。 accounts[index]
返回 Account
而不是E
.
您可能想实现 Iterator<Account>
。将类签名更改为此...
public class AccountIterator<E> implements Iterator<Account>
然后,Impl 将处理您的一般偏好,并且它会起作用。
class MyIter implements Iterator<String>
{
String [] arr = new String[10];
public void init()
{
}
public boolean hasNext()
{
return false;
}
public String next()
{
return arr[1];
}
}
关于java - 抽象类的简单Q迭代器<Object E>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16007688/