java创建匿名类的对象
我们有内部阶级
class OuterClass
{
public Iterator getIterator(final String name)
{
class LocalIterator implements Iterator
{
public Iterator next()
{
return new LocalIterator();
}
}
return new LocalIterator();
}
}
是否可以使用本地迭代器的所有功能创建一个匿名类,并使getIterator返回该匿名类的对象?主要问题是——应该用什么来代替
return new LocalIterator();
# 1 楼答案
确保
OuterClass
实现Iterable
以便与foreach循环一起使用。然后在iterator()
中,可以返回匿名迭代器的实例(用所需的具体类型替换T
)# 2 楼答案
我不确定我是否正确理解了你的问题。但是如果你想使用匿名类,你可以:
通常,您总是能够使用匿名类创建任何接口的实例(例如,请参见http://docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm)。您还可以使用
OuterClass.this
访问类内的name
参数和外部类的this
实例# 3 楼答案
您应该尝试一下这种设计模式:
Itr
实例可以作为公共Iterator
在任何地方使用