正如我测试的那样,下面的代码执行没有任何问题。但我无法理解其中的逻辑。有人可以解释一下吗?
public static void main(String[] args) {
List<String> london = new ArrayList<>(Arrays.asList("Chinatown","Croydon","Eden Park"));
class City{
private String name;
City(String name){
this.name = name;
}
public void printCity(){
System.out.println(name);
}
}
london.stream().map(City::new).forEach(City::printCity); //Chinatown,Croydon,Eden Park
}
在上面的示例代码中,我有以下问题。
- foreach 方法始终采用消费者对象。在这里 printCity 方法不是带参数的方法。它仍然有效。如何?
- printCity 方法在这里不是静态方法。City 本身如何调用实例方法?