为什么方法以'return new'开头?
public Iterator<T> iterator() {
return new Iterator<T>() {
...
}
}
答案 0 :(得分:4)
这创建了一个类的实例(实际上它创建了一个类的子类,因为@biziclop已经被挑选出来)并返回它。这通常用在“工厂”类中,沿着这些方向:
public static Button createButton(int x, int y, String label){
return new Button(x,y,label){
void onClick(){
...
}
}
}
/* .... */
Button b = Toolkit.createButton(20,20,"Hello!");
答案 1 :(得分:3)
方法iterator()
返回Iterator<T>
类型,因此该方法应该有一个return
语句,后跟一个Iterator<T>
类型的对象。
new Iterator<T>() {
...
}
这是一个匿名类,您可以通过实现匿名类中的所有抽象方法来实例化接口实例。详细了解Anonymous classes。
答案 2 :(得分:2)
您所看到的是一个方法public Iterator<T> iterator()
,它返回一个新的匿名内部类实例,而不是方法。如果您以前从未见过匿名的内部课程,那么这种困惑是可以理解的。