java基础-匿名函数
2021/4/16 12:29:09
本文主要是介绍java基础-匿名函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
匿名函数
::操作符
- A static method (
ClassName::methName
)- An instance method of a particular object (
instanceRef::methName
)- A
super
method of a particular object (super::methName
)- An instance method of an arbitrary object of a particular type (
ClassName::methName
)- A class constructor reference (
ClassName::new
)- An array constructor reference (
TypeName[]::new
)
- 静态方法引用,如
System.out::println
- 对象方法引用,如
Person::getAge
- 构造方法引用,如
ArrayList::new
- 数组构造器的引用,如
String[]::new
- 超类方法的引用,如
super::method
BiConsumer
@Test public void testBiConsumer (){ BiConsumer<Person, String> biConsumerRef = Person::setName; BiConsumer<Person, String> biConsumer = (Person person, String name) -> person.setName(name); test(Person::setAge); test((Person a ,Integer b)->a.setAge(b)); } public static void test(BiConsumer<Person,Integer> consumer){ Person person = new Person("1", 28); consumer.accept(person,2); System.out.println(person); }
Consumer
@Test public void testObjectMethod() { List<String> list = Arrays.asList("aaaa", "bbbb", "cccc"); //对象实例语法 instanceRef::methodName list.forEach(this::print); list.forEach(n-> System.out.println(n)); } public void print(String content){ System.out.println(content); }
数组构造器
@Test public void testArray (){ IntFunction<int[]> arrayMaker = int[]::new; // creates an int[10] int[] array = arrayMaker.apply(10); array[9]=10; System.out.println(array[9]); }
构造方法
public class Example { private String name; Example(String name) { this.name = name; } public static void main(String[] args) { InterfaceExample com = Example::new; Example bean = com.create("hello world"); System.out.println(bean.name); } interface InterfaceExample { Example create(String name); } }
这里的用法可能觉得很奇怪。理解一点函数式接口与方法入参以及返回类型一样,就能将该方法赋值给该接口
这里的
Example::new
与Example create(String name)
的入参以及返回值都一样,所以可以直接赋值InterfaceExample com = Example::new;
资料
官网说明
这篇关于java基础-匿名函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解