关于Lamda表达式的对象直接调用总结

public class Demo2 {

    public static void main(String[] args) {
        //如果参数的作用完全和对象方法一致
        //或者和类的方法一致就可以省略用对象调用模式
        //对象参数必须仍旧做为参数否则就失去了完全一致的前提
        //方法和所封装的方法体的实际含义和参数规则一抹一样
        //方法就是给里面的对象调用方法传参数的那么就用对象直接调用方法的方式
        //而接口实现类的方法调用就仅仅起到了个 传值作用
        //方法参数范围在传递的时候传递给的对象方法要是Object也就是必须接收任意泛型T
        //一定是一个参数.如果是两个除非类型 不一样否则无法推导
        new Demo2().method(System.out::println, "欧阳锋");
        new Demo2().method(Demo::method, "洪七公");
        Demo demo = new Demo("");
        new Demo2().method(new Demo("")::method1, "洪七公");
        new Demo2().method(Demo::new, "构造方法调用");
        new Demo2().method1( (s)->{Integer[] ints = new Integer[s];}, 2);
        new Demo2().method1( Integer[]::new, 2);
    }
    public void method(Consumer consumer,String s){
        consumer.accept(s);
    }
    public void method1(Consumer<Integer> consumer, int s){

    }
}

猜你喜欢

转载自blog.csdn.net/qq_34627002/article/details/88917971