Java注解与Lambda表达式详解
需积分: 1 101 浏览量
更新于2024-08-03
收藏 6KB MD 举报
"Java基础学习笔记,涵盖注解和Lambda表达式的使用。"
在这篇笔记中,主要讨论了Java语言中的两个重要特性:注解(Annotation)和Lambda表达式。
首先,我们来看注解。注解在Java中是一种元数据,它提供了将信息附加到代码(如类、方法等)的方式,这些信息可以在编译时或运行时被编译器或JVM使用。在示例中,创建了一个名为`MyAnno`的自定义注解,它有两个可选的属性:`value`和`age`。`@Target`指定注解可以应用于类型(ElementType.TYPE)和方法(ElementType.METHOD),而`@Retention`指定了注解的保留策略为运行时(RetentionPolicy.RUNTIME),这意味着在运行时可以通过反射获取这些注解信息。
获取注解值的方法是通过`getDeclaredAnnotation`,这可以从类或方法上获取声明的注解。在示例的`GetAnnoValueDemo`类中,通过`Class`对象的`getDeclaredAnnotation`方法获取到了`Test`类上的`MyAnno`注解,并打印出其`value`属性的值。
接下来,我们讨论Lambda表达式,这是Java 8引入的一个重要特性,用于简化函数式编程。Lambda表达式由三部分组成:
1. 形参列表:可以省略参数类型,如果参数只有一个,甚至可以省略小括号。在示例中,`MyConsumer`接口定义了一个无返回值的方法`test`,表示一个消费型函数。
2. 箭头符号:`->`,标志着参数列表结束,后面跟着函数体。
3. 代码块:可以是一条或多条语句,如果只有一条语句,可以省略花括号。在`MyConsumerTest`类中,`consumer`方法接受一个`MyConsumer`类型的参数,然后调用其`test`方法。
`@FunctionalInterface`注解用于标记一个接口为函数式接口,这意味着它只能有一个非默认(非静态)方法。在`MyConsumer`接口中,尽管定义了多个方法,但只有`test`是非抽象的,所以它满足函数式接口的要求。
Lambda表达式的使用大大简化了代码,使得处理集合或其他需要回调函数的场景更加简洁。例如,你可以用Lambda来实现`Consumer`接口,从而在遍历集合时进行某种操作,而无需定义单独的匿名内部类。
总结起来,这篇笔记涵盖了Java中注解的创建与使用,以及Lambda表达式的构成和应用,这些都是现代Java开发中不可或缺的知识点。理解并熟练运用这些特性,能提高代码的可读性和可维护性,同时利用Lambda可以更好地实现函数式编程风格。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-12-10 上传
好教员好
- 粉丝: 1231
- 资源: 40
最新资源
- PSP2_Orig:奥雷利亚版本
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- jobpanda:工作熊猫
- PSoC在光纤陀螺脉冲输出采集中的应用.rar
- CCM LC巴克_Simulink开关电源仿真模型_开关电源仿真_matlab simulink
- ZhenChaFen3_三帧间的帧间差分法_
- 行业分类-设备装置-一种涂布天然植物提取物复合水性光油的卷烟接装纸及其制备方法和应用.zip
- currency-app
- web-app:与网站有关的一切
- todo-app-ios
- .NET Framework 4.5开发包
- Curso-3E-Java:3E java课程中制作的程序
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- Chronote:让您的浏览器成为您的记事本
- cef_cefLoadStream_cefsh_CEF_cef框架_globeahp_
- 基于matlab的语音信号加密器仿真设计+含代码操作演示视频