接上面的方法引用和构造器引用:
3》引用某类对象的实例方法
@FunctionalInterface public interface Cut{ String cut(String str,int b,int c); } ... //创建一个匿名对象 Cut cut= (str,b,c) -> str.substring(b,c); String val=cut.cut("Tomcat",0,3); System.out.println(val); ------------------------ //第一个参数作为调用者 //后面的参数全部传给该方法作为参数 Cut cut= String::substring;
4》引用构造器
@FunctionalInterface public interface JFrameFactory{ JFrame win(String title); } ... //创建一个匿名对象 JFrameFactory jf= (String title) -> new JFrame(title); JFrame fr=jf.win("我的窗口"); System.out.println(fr); ------------------------ JFrameFactory jf= JFrame::new;
5、Lambda表达式与匿名内部类的联系和区别
Lambda表达式是匿名内部类的一种简化,可以部分替代匿名内部类。