嗨,你们明天可以告诉他们吗?
那么, 我不使用java.util.iterator来创建我的迭代器接口,只需创建我自己的
我有2个迭代器:AccountIterator / FileIterator,我的目标是在“deafult”包中将抽象对象“Account”和对象“File”迭代到我的Main类
(还有2个扩展到AbstractAccount.class(BasicClass.class / PremiumClass.class,而AbstractAccount.class实现Account.interface)
有我的Iterator界面:
package cs;
public interface Iterator<E> {
public void init() ;
public boolean hasNext();
public E next();
}
有我的帐户迭代器
http://i.stack.imgur.com/w0avp.png
我不能使用演员,任何想法 Cumps和抱歉英语不好
答案 0 :(得分:1)
您已使用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];
}
}
答案 1 :(得分:0)
只需修改类标题即可指定对象类型。
使用
public class AccountIterator implements Iterator<Account>
而非一般
public class AccountIterator<E> implements Iterator<E>
您必须将E更改为帐户。