Java8方法引用特性?

import java.util.Arrays; import java.util.List; import java.util.function.Supplier; /** * Created by carlos-lee on 17-1-11. */ public class Car { public static Car create(final Supplier<Car> supplier){ return supplier.get(); } public static void collide(final Car car){ System.out.println("Collided "+car.toString()); } public void follow(final Car another){ System.out.println("Following the " + another.toString()); } public void repair(){ System.out.println("Repaired " + this.toString()); } public static void main(String[] args){ final Car car = Car.create(Car::new); final List<Car> cars = Arrays.asList(car); //这里调用静态方法能理解 cars.forEach(Car::collide); //这里为什么不能引用follow cars.forEach(Car::repair); final Car police = Car.create(Car::new); //这里为什么不能引用repair方法 cars.forEach(police::follow); } } 研究java8新新特性的时候被这个问题给困住了,就是想不明白,哪位大神帮我解释下,越详细越好! 怎么才能准确运用这种方法引用? … 显示全部
默认排序 按时间排序

3 个回答

知乎用户 Java,Clojure,Ruby开发工程师
刚把得永福 生活不止眼前的苟且,还有诗和远方的苟且

加入知乎

与世界分享你的知识、经验和见解

验证码
已有帐号?
11 人关注该问题