导航:首页 > 编程语言 > java匿名函数参数

java匿名函数参数

发布时间:2025-01-17 00:14:08

java 8 新特性中p->p.setLastName("Doe"));

这是lambda表达式,也就是匿名函数,对于
persons.forEach(p->p.setLastName("Doe"));
这句代码,persons是一个list,forEach是一个内部迭代的方法,p->p.setLastName("Doe")是一个匿名函数对象。
这个语句等价于
for (Person p : persons) {
p.setLastName("Doe");
}
但是用for循环是外部迭代,速度略慢。
p->p.setLastName("Doe")
p是指list当中取出的对象,p可以自己定义,你写a也可以,相应的就要变成
a->a.setLastName("Doe")
->是lambda表达式的符号,->左边的对象去传入lambda函数体p.setLastName("Doe"),是前面传入的p去调用setLastName方法,如果要调用多个方法,那么方法体要用花括号包含
例如persons.forEach(p->{
p.setLastName("Doe")
System.out.println(p);
});
综上所述
persons.forEach(p->p.setLastName("Doe"));
是把p->p.setLastName("Doe");这个函数对象,给了persons的迭代器,让迭代器用这个函数去对集合中的每一个对象使用
有了lambda,你可以这样定义一个新的线程
new Thread(() -> {System.out.println("hello word!");}).start();
() -> {System.out.println("hello word!");}这句语句其实就是runnable接口的实现对象,
编译器会根据函数需要实现的接口去隐式转换,Thread的构造方法需要传递Runnable接口的实现类,所以new Thread(() -> {System.out.println("hello word!");}).start();相当于
new Thread((Runnable)() -> {System.out.println("hello word!");}).start();
其中()是匹配接口中的无参函数,因为Runnable接口中run方法为无参所以是()
->指明前面是传入参数,后面是函数体
有了lambda就能写出更加漂亮的代码,以及更少的工作量,实现一个方法的接口用匿名内部类的话看起来是冗余代码了
纯手打望采纳

Ⅱ (function($){...})(jQuery)是什么意思

(function($){...})(jQuery),这意味着定义并执行一个使用参数jQuery并通过形式参数$接收匿名函数的匿名函数。

分析:

1,匿名函数定义:javasript函数(arg){...},这种形式在javascript中称为匿名函数。 Arg是匿名函数的参数。

2,匿名函数调用:调用函数时,括号和参数写在函数之后。由于运算符的优先级,函数本身需要使用括号,即:(function(arg){...})(Param)这等效于使用参数arg定义匿名函数并使用param调用此匿名函数作为参数。

3,(function($){...})(jQuery)是使用实际参数jQuery定义和执行匿名函数,原因是在正式参数中使用$,以免与其他库冲突,因此实际参数使用jQuery。

4,等效形式:var fn = function($){....}; fn(jQuery);实际上,这是可以理解的,但是应该注意,fn不存在,直接定义函数,然后运行。只需“压缩”为以下(function($){...})(jQuery)。


(2)java匿名函数参数扩展阅读:

匿名函数的声明和使用:

首先,声明一个直接分配给事件的匿名函数;

Window.onload = function(){};

使用匿名函数表达式。将匿名函数分配给变量。

声明:var func = function(){};

呼叫:func();

自我执行功能:

可以从各种运算符开始但是普遍使用! ,如:!函数(参数列表){}(参数列表)。

使用()包装函数和函数后的括号,例如:(function(){}());

使用()值包装函数值,例如:(function(){})();

阅读全文

与java匿名函数参数相关的资料

热点内容
打好的文件找不到了咋办 浏览:252
gpt分区win7升级win10 浏览:919
怎样用qq影音压缩文件 浏览:204
装修需求市场在哪个网站 浏览:662
亚马逊数据报告在哪里 浏览:757
pdf文件怎样把a4打成a3 浏览:599
编程课能学到什么程度 浏览:753
电脑删软件卸载显示找不到文件 浏览:763
gho文件夹找不到了 浏览:101
小米文件助手在哪里 浏览:653
提取多个文件夹的路径 浏览:907
数据标准化是怎么做的 浏览:277
网络共享看不到本机 浏览:27
js怎么实现树 浏览:679
java输出流缓冲区内容清除 浏览:823
广告软件下载的app在哪里 浏览:242
联通和电信的用户名和密码 浏览:630
如何装linux双系统 浏览:816
wiiu文件夹游戏怎么转格式 浏览:350
iphone5文稿与数据怎么删除 浏览:145

友情链接