导航:首页 > 编程语言 > 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匿名函数参数相关的资料

热点内容
2008打开登录密码忘记了 浏览:771
苹果7如何授权应用程序 浏览:899
怎样把旧的文档保存到桌面文件夹 浏览:827
wps云数据如何恢复 浏览:496
微信发送过来文件 浏览:300
怎么改合同网站 浏览:73
网络斗地主记牌器怎么实现的 浏览:377
ps镜像文件制作教程 浏览:45
系统分页文件大小设置多少 浏览:447
win10有线无法上网 浏览:339
wps无法访问指定文件 浏览:96
iphone4震动坏了 浏览:217
安卓随机数软件rand 浏览:356
CNC编程如何掌握公差 浏览:297
linux搭建php环境 浏览:514
星形网络怎么表示有故障 浏览:719
dbf文件c语言处理excel 浏览:138
金蝶kis支持win10吗 浏览:113
常州采集物联网大数据平台有哪些 浏览:950
win10休眠文件改到d盘 浏览:626

友情链接