惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
The Register - Security
The Register - Security
G
Google Developers Blog
罗磊的独立博客
WordPress大学
WordPress大学
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Recent Announcements
Recent Announcements
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
The Cloudflare Blog
B
Blog RSS Feed
S
Schneier on Security
T
Tenable Blog
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
T
Tor Project blog
N
Netflix TechBlog - Medium
T
Threatpost
NISL@THU
NISL@THU
Stack Overflow Blog
Stack Overflow Blog
N
News | PayPal Newsroom
N
News and Events Feed by Topic
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
P
Privacy & Cybersecurity Law Blog
C
CERT Recently Published Vulnerability Notes
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
博客园 - 【当耐特】
Help Net Security
Help Net Security
The Hacker News
The Hacker News
Hugging Face - Blog
Hugging Face - Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
C
Cisco Blogs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events

博客园 - Rock Wang

Asp.Net Core Web Api基于cookie的安全验证 C#语言新特性(6.0-8.0) C#中Struct和Class的区别 iOS真机调试之免费预配(Free provisioning) iOS真机调试 Spring Boot学习笔记(1) Java学习笔记(7) Java学习笔记(6) Java学习笔记(5) Java学习笔记(4) Idea常用功能汇总 Java学习笔记(3) Java学习笔记(2) Java学习笔记(1) 如何开发NPM包 c#抓屏功能在DPI缩放后,截到的图片不完整的问题 支持续传功能的ASP.NET WEB API文件下载服务 ASP.NET MVC 阻止通过Url直接访问服务器上的静态文件 VS2013/VS2015/VS2017通过oschina托管代码
Java学习笔记(9)
Rock Wang · 2019-03-19 · via 博客园 - Rock Wang

lambda表达式:

只定义了单个方法的接口,称为单一抽象方法(Single Abstract Method, SAM)接口;由于此接口通过调用,完成某一功能,所以也称为功能接口,此类接口的实例称为功能对象

lambda表达的作用是相当于一个函数,编译器把lambda表达式编译为一个对象,该对象是一个内部匿名类的实例,此匿名类实现了功能接口,只有一个方法,此方法的参数即为lambda表达式的参数,此方法的方法体即为lambda表达式的方法体

由上述可以推出如下结论:如果一个方法的参数是功能接口类型,可以用lambda表达式作为参数传给此方法

所以如果一个方法的接收参数为功能接口类型,可以通过如下三种方式传参数,其中接口上@FunctionInterface注释,表明该接口是一个功能接口

 1 public void Run(){
 2         setAction(new InnerClass());
 3 
 4         setAction(new T1() {
 5             @Override
 6             public void test() {
 7                 System.out.println("匿名类方式");
 8             }
 9         });
10 
11         setAction(() -> System.out.println("lambda表达式方式"));
12     }
13 
14     public void setAction(T1 t1) {
15         t1.test();
16     }
17 
18     class InnerClass implements T1 {
19         @Override
20         public void test() {
21             System.out.println("内部类方式");
22         }
23     }
24 
25     @FunctionalInterface
26     interface T1 {
27         void test();
28     }