首页 > 其他分享 >内部类和lambda表达式

内部类和lambda表达式

时间:2022-11-04 17:49:04浏览次数:49  
标签:内部 void 接口 public 方法 eat 表达式 lambda

如果有一个接口A,A里有eat()抽象方法,想要调用这个抽象方法,用传统模式就要写一个实现类B并重写eat()方法,再创建B对象调用这个方法

如果用内部类可以简化代码量

先定义两个接口和一个方法

//接口A
interface A{
public void eat();
}
//接口B
interface B{
public void eat1();

public void eat2();
}
//定义方法f
public void f(A a){
a.eat();
}

用内部类调用接口A的方法

new A(){
@Override
public void eat(){
System.out.print("eat方法正在执行")
}
}.eat()
相当于创建了实现对象并调用了方法

当接口中有多个方法需要调用怎么办?

 B b = newB(){
@Override
public void eat1(){xxxx}
@Override
public void eat2(){xxxx}
};
b.eat1();
b.eat2();

以上只是为了说明什么是内部类,并不是常用的场景,用的最多的情况是把内部类当作实参,当一个方法需要抽象类或接口的对象做实参时,可以不用创建实现类并

重写抽象方法再new对象的方式传参,用内部类一步到位,可以把内部类看作是接口的实现对象,比如调用方法f

f( new A(){
@Override
public void eat(){
System.out.print("内部类常用场景")
}
}

)

 

lambda表达式:

 

标签:内部,void,接口,public,方法,eat,表达式,lambda
From: https://www.cnblogs.com/1--2/p/16858570.html

相关文章

  • java正则表达式
    参考:https://www.cnblogs.com/klb561/p/10850803.html1匹配验证-验证Email是否正确publicstaticvoidmain(String[]args){//要验证的字符串Stringstr=......
  • 按照 ExpressionVisitor 抽象类 思路 重新实现表达式 从左到右 递归解析 解决参数编号
     核心递归方法根据表达式类型跳转到具体的处理方法处理完后返回null跳出循环///<summary>///访问///</summary>///<pa......
  • 最全的常用正则表达式大全
    很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。......
  • lambda表达式使用局部变量要用final
    为什么Lambda表达式(匿名类)不能访问非final的局部变量呢?  因为实例变量存在堆中,而局部变量是在栈上分配,Lambda表达式(匿名类)会在另一个线程中执行。如果在线程......
  • idea 方法格式化中param的groovy表达式
    groovyScript("defresult='';defparams=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]','').split(',').toList();for(i=0;i<params.size();i++){if(params[......
  • 正则表达式
    获取花括号的数据包括花括号1publicstaticvoidmain(String[]args){2StringfileUrl="shncchdhd${whc$%^&edmcnvf123r}fdghjhjhhj#{bfghj}dcfhdv......
  • Java函数式编程(1):Lambda表达式(2)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 从之前的Lambda表达式的演变过程可以知道,Lambda表达式其实是一个对匿名内部类的简化过程:去掉了多余的语法修饰,只保留最......
  • 正则表达式
      认识正则:正则表达式,又称规则表达式,(RegularExpression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),是......
  • 内部网关协议RIP及距离向量算法
    ......
  • 07_查询数据_系统数据字典_SQL值表达式
    一、系统数据字典 代码:select*fromgp_pgdatabase;(查看数据字典) 二、SQL值表达式值表达式包括查询条件中的各种命令;值表达式的结果称为标量;表达式语法允许从原......