mirror of
https://gitee.com/many2many/java-web.git
synced 2025-01-11 22:50:54 +08:00
add lambda
This commit is contained in:
parent
8364c2fa3b
commit
ea0b8098f3
@ -85,11 +85,120 @@ public @interface 注解名称{
|
|||||||
- 使用注解: 在代码中应用注解。
|
- 使用注解: 在代码中应用注解。
|
||||||
- 读取注解: 通过反射或其他机制读取并处理注解。
|
- 读取注解: 通过反射或其他机制读取并处理注解。
|
||||||
|
|
||||||
|
#### 5.1.3 `Lambda`表达式(掌握)
|
||||||
|
|
||||||
|
Lambda 表达式是 Java 8 引入的一个重要特性,它允许你以简洁的语法编写匿名函数。Lambda 表达式主要用于实现单个抽象方法的接口,这些接口通常被称为函数式接口(Functional Interface)。以下是 Java 中 Lambda 表达式的简单教程:
|
||||||
|
|
||||||
|
##### 函数式接口(Functional Interface)
|
||||||
|
|
||||||
|
函数式接口只有一个抽象方法的接口。为了声明一个函数式接口,你可以使用 `@FunctionalInterface` 注解,这样可以确保接口只有一个抽象方法。
|
||||||
|
|
||||||
|
```java
|
||||||
|
@FunctionalInterface
|
||||||
|
public interface SimpleFunctionalInterface {
|
||||||
|
void doSomething();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Lambda 表达式的基本语法
|
||||||
|
|
||||||
|
Lambda 表达式的一般语法是:
|
||||||
|
|
||||||
|
```java
|
||||||
|
(parameters) -> expression
|
||||||
|
或者
|
||||||
|
(parameters) -> { statements; }
|
||||||
|
```
|
||||||
|
|
||||||
|
- `parameters`:这是参数列表,可以是一个或多个参数,参数类型可以省略。
|
||||||
|
- `->`:这是 Lambda 操作符,将参数部分与 Lambda 体分开。
|
||||||
|
- `expression` 或 `statements`:这是 Lambda 体,可以是一个表达式或一个代码块。
|
||||||
|
|
||||||
|
##### 使用 Lambda 表达式
|
||||||
|
|
||||||
|
###### 无参数和无返回值
|
||||||
|
|
||||||
|
```java
|
||||||
|
SimpleFunctionalInterface sfi = () -> System.out.println("Hello Lambda!");
|
||||||
|
sfi.doSomething(); // 输出 "Hello Lambda!"
|
||||||
|
```
|
||||||
|
|
||||||
|
###### 一个参数和无返回值
|
||||||
|
|
||||||
|
```java
|
||||||
|
@FunctionalInterface
|
||||||
|
interface Greeting {
|
||||||
|
void greet(String name);
|
||||||
|
}
|
||||||
|
|
||||||
|
Greeting greet = (String name) -> System.out.println("Hello, " + name);
|
||||||
|
greet.greet("Kimi"); // 输出 "Hello, Kimi"
|
||||||
|
```
|
||||||
|
|
||||||
|
###### 一个参数和有返回值
|
||||||
|
|
||||||
|
```java
|
||||||
|
@FunctionalInterface
|
||||||
|
interface Converter {
|
||||||
|
String convert(String from, String to);
|
||||||
|
}
|
||||||
|
|
||||||
|
Converter converter = (from, to) -> from.toUpperCase() + to.toLowerCase();
|
||||||
|
System.out.println(converter.convert("Java", "Python")); // 输出 "JAVApython"
|
||||||
|
```
|
||||||
|
|
||||||
|
###### 多个参数和有返回值
|
||||||
|
|
||||||
|
```java
|
||||||
|
@FunctionalInterface
|
||||||
|
interface Calculator {
|
||||||
|
int calculate(int a, int b);
|
||||||
|
}
|
||||||
|
|
||||||
|
Calculator add = (a, b) -> a + b;
|
||||||
|
System.out.println(add.calculate(5, 10)); // 输出 15
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Lambda 表达式与方法引用
|
||||||
|
|
||||||
|
如果 Lambda 表达式实现的是一个已有的方法,你可以使用方法引用来简化代码。
|
||||||
|
|
||||||
|
###### 静态方法引用
|
||||||
|
|
||||||
|
```java
|
||||||
|
Converter concat = String::concat;
|
||||||
|
System.out.println(concat.convert("Hello, ", "Kimi")); // 输出 "Hello, KimiHello, "
|
||||||
|
```
|
||||||
|
|
||||||
|
###### 实例方法引用
|
||||||
|
|
||||||
|
```java
|
||||||
|
Converter append = StringBuilder::append;
|
||||||
|
System.out.println(append.convert("Hello, ", "Kimi")); // 输出 "Hello, Kimi"
|
||||||
|
```
|
||||||
|
|
||||||
|
###### 构造函数引用
|
||||||
|
|
||||||
|
```java
|
||||||
|
Converter toStringBuilder = StringBuilder::new;
|
||||||
|
System.out.println(toStringBuilder.convert("Hello, ", "Kimi")); // 输出 "Hello, Kimi"
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Lambda 表达式与 Stream API
|
||||||
|
|
||||||
|
Lambda 表达式在处理集合时非常有用,特别是与 Java 8 引入的 Stream API 结合使用。
|
||||||
|
|
||||||
|
```java
|
||||||
|
List<String> names = Arrays.asList("Kimi", "Alice", "Bob", "Charlie");
|
||||||
|
names.stream()
|
||||||
|
.filter(name -> name.startsWith("A"))
|
||||||
|
.forEach(System.out::println); // 输出 "Alice"
|
||||||
|
```
|
||||||
|
|
||||||
|
这个简单教程介绍了 Lambda 表达式的基本概念和用法。通过使用 Lambda 表达式,你可以编写更简洁、更易读的代码。
|
||||||
|
|
||||||
|
|
||||||
|
#### 5.1.4 `Optional` 的介绍和使用(掌握)
|
||||||
|
|
||||||
### 5.1.3 `Optional` 的介绍和使用(了解)
|
|
||||||
|
|
||||||
#### 定义
|
#### 定义
|
||||||
`Optional` 是 Java 8 引入的一个容器类,用于封装可能为 `null` 的值。它的主要目的是帮助开发者避免空指针异常,并提供一种更优雅的方式来处理可能不存在的值。
|
`Optional` 是 Java 8 引入的一个容器类,用于封装可能为 `null` 的值。它的主要目的是帮助开发者避免空指针异常,并提供一种更优雅的方式来处理可能不存在的值。
|
||||||
@ -168,7 +277,7 @@ public class OptionalExample {
|
|||||||
|
|
||||||
通过使用 `Optional`,开发者可以写出更加健壮和易于维护的代码。
|
通过使用 `Optional`,开发者可以写出更加健壮和易于维护的代码。
|
||||||
|
|
||||||
### 5.1.4 Stream API 的介绍和使用(了解)
|
#### 5.1.5 Stream API 的介绍和使用(了解)
|
||||||
|
|
||||||
#### 定义
|
#### 定义
|
||||||
Stream API 是 Java 8 引入的新特性,用于处理集合数据。它提供了一种声明式的、函数式风格的数据处理方式,使得处理集合数据变得更加简洁和高效。
|
Stream API 是 Java 8 引入的新特性,用于处理集合数据。它提供了一种声明式的、函数式风格的数据处理方式,使得处理集合数据变得更加简洁和高效。
|
||||||
@ -240,7 +349,7 @@ public class StreamExample {
|
|||||||
|
|
||||||
通过使用 Stream API,开发者可以写出更加高效、简洁且易于维护的代码。这对于处理大量数据集尤其有用,同时也提高了代码的可读性和可维护性。
|
通过使用 Stream API,开发者可以写出更加高效、简洁且易于维护的代码。这对于处理大量数据集尤其有用,同时也提高了代码的可读性和可维护性。
|
||||||
|
|
||||||
### 5.1.5 泛型(了解)
|
#### 5.1.6 泛型(了解)
|
||||||
|
|
||||||
#### 什么是泛型?
|
#### 什么是泛型?
|
||||||
|
|
||||||
@ -676,9 +785,9 @@ java项目常用的构建工具有:
|
|||||||
|
|
||||||
好的,以下是针对 Maven 和 Gradle 的具体使用方法的介绍,以完成你的文档的 5.7.1 和 5.7.2 部分。
|
好的,以下是针对 Maven 和 Gradle 的具体使用方法的介绍,以完成你的文档的 5.7.1 和 5.7.2 部分。
|
||||||
|
|
||||||
### 5.7.1 Maven
|
#### 5.7.1 Maven
|
||||||
|
|
||||||
#### 5.7.1.1 独立Maven
|
##### 5.7.1.1 独立Maven
|
||||||
|
|
||||||
##### 安装 Maven
|
##### 安装 Maven
|
||||||
|
|
||||||
@ -714,7 +823,7 @@ cd path/to/your/project
|
|||||||
mvn clean package
|
mvn clean package
|
||||||
mvn package
|
mvn package
|
||||||
```
|
```
|
||||||
#### 5.7.1.2 在IDEA使用Maven
|
##### 5.7.1.2 在IDEA使用Maven
|
||||||
|
|
||||||
**导入 Maven 项目**
|
**导入 Maven 项目**
|
||||||
* 打开 IntelliJ IDEA
|
* 打开 IntelliJ IDEA
|
||||||
@ -731,9 +840,9 @@ IntelliJ IDEA 自带 Maven 插件,可以使用 Maven 插件来运行测试、
|
|||||||
|
|
||||||
> **访问 Maven 工具窗口:** 在 IntelliJ IDEA 的右侧栏中找到 “Maven” 工具窗口。 如果没有显示,可以通过 “View” > “Tool Windows” > “Maven” 打开。
|
> **访问 Maven 工具窗口:** 在 IntelliJ IDEA 的右侧栏中找到 “Maven” 工具窗口。 如果没有显示,可以通过 “View” > “Tool Windows” > “Maven” 打开。
|
||||||
|
|
||||||
### 5.7.2 Gradle
|
#### 5.7.2 Gradle
|
||||||
|
|
||||||
#### 5.7.2.1 单独 Gradle
|
##### 5.7.2.1 单独 Gradle
|
||||||
|
|
||||||
##### 安装 Gradle
|
##### 安装 Gradle
|
||||||
|
|
||||||
@ -778,11 +887,11 @@ IntelliJ IDEA 自带 Maven 插件,可以使用 Maven 插件来运行测试、
|
|||||||
- **清理项目**: `./gradlew clean` (Linux/macOS)
|
- **清理项目**: `./gradlew clean` (Linux/macOS)
|
||||||
- `gradlew.bat clean` (Windows)
|
- `gradlew.bat clean` (Windows)
|
||||||
|
|
||||||
#### 5.7.2.2 IDEA中使用Gradle
|
##### 5.7.2.2 IDEA中使用Gradle
|
||||||
|
|
||||||
在 IntelliJ IDEA 中使用 Gradle 同样可以提高开发效率,因为 IDEA 提供了对 Gradle 的深度集成支持。以下是详细的步骤说明如何在 IntelliJ IDEA 中使用 Gradle:
|
在 IntelliJ IDEA 中使用 Gradle 同样可以提高开发效率,因为 IDEA 提供了对 Gradle 的深度集成支持。以下是详细的步骤说明如何在 IntelliJ IDEA 中使用 Gradle:
|
||||||
|
|
||||||
### 5.7.2.2 在 IntelliJ IDEA 中使用 Gradle
|
##### 5.7.2.3 在 IntelliJ IDEA 中使用 Gradle
|
||||||
|
|
||||||
#### 创建新的 Gradle 项目
|
#### 创建新的 Gradle 项目
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user