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

热点内容
java中写文件 浏览:940
文件与文件内容不一样 浏览:299
买车有哪些随车文件 浏览:616
微信图片如何用数据线传电脑 浏览:999
U盘文件夹应用程序 浏览:470
图书馆文献数据库有哪些 浏览:362
压缩文件损坏的头 浏览:817
微信公众号创建好文件怎么发送 浏览:858
xlrd如何将数据写入excel中 浏览:200
微信号货源宣传图 浏览:562
recyclerview版本支持 浏览:98
传输文件出错然后u盘读取不了 浏览:641
编程里面的英文去哪里学方便 浏览:668
90版本天帝tp加点 浏览:117
vivox6和苹果6 浏览:611
编程苦恼怎么办 浏览:140
vuejsref动态改变 浏览:171
哪些软件可用于文件解压 浏览:701
农行u盾原始密码 浏览:371
xp如何弄出一个无线网络连接 浏览:569

友情链接