匿名对象的创建 & lambda表达式 & 函数式接口 & 方法应用/构造器引用/数组引用

匿名类对象 

匿名类对象的定义的语法格式:

new 实现接口()
{
    //匿名内部类类体部分
}

或者

new 父类构造器(实参列表)
{
  //匿名内部类类体部分
}

lambda表达式

 

 Lambda表达式一定是借助函数式接口才存在的,Lambda表达式是作为函数式接口实现类的实例存在。

 函数式接口

 例如:

 

 

 

 

方法应用/构造器引用

方法引用

 

当lambda体中有实现的方法时,才可以使用方法引用。即函数式接口型都可以使用。

直接深入到方法体中进行方法引用,因为都是函数式接口,类中只有一个抽象方法,所以直接深入到方法体内。方法体内和形参,对象,类以及他们可以使用的方法有关,所以可以分为三部分:

1. 抽象方法的方法体是由对象调用非静态方法实现:

        这里的对象不是抽象方法的形参。

 2. 由类调用自身的静态方法实现抽象方法的方法体:

3.方法体由形参调用自身的方法实现:

构造器引用

        和方法引用类似,函数式接口的抽象方法的返回值类型对应某一个类,并且该抽象方法的形参列表 和 该类的形参列表可以一致时,可以使用构造器引用。

 解释:T get()返回的是T类型的(这里设置返回的是Employee对象),没有参数;对比:空参构造器Employee(),new的时候返回的一个Employee对象,也没有参数,所以重写的get()方法是通过Employee构造器调用 new方法实现,所以类似与类 :: 方法,Employee :: new。

因为R apply(T t) 对应了 Employee(int id)构造器,所以T t已经表示了参数,所以构造器引用时就不必加参数。可以推断出。

数组引用

可以把数组看作一个特殊的类,则写法与构造器引用一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值