>
> 【痕迹】QQ+微信朋友圈和聊天记录分析工具
>
> (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。
>
> (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。
>
> (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。
>
> 下载地址:https://www.alipan.com/s/x6fqXe1jVg1
>
基本原理
在Java中,可选参数通常指的是在方法调用时可以省略某些参数,而方法内部会使用默认值来代替这些省略的参数。Java 8引入了Optional
类,它是一个容器对象,用于包含或不包含非空值。Optional
类提供了一种优雅的方式来处理可能为null的值。
示例代码
示例1:使用Optional
类
import java.util.Optional;
public class OptionalExample {
public static void printName(Optional name) {
name.ifPresentOrElse(
System.out::println,
() -> System.out.println("No name provided")
);
}
public static void main(String[] args) {
printName(Optional.of("Kimi")); // 提供了名字
printName(Optional.empty()); // 没有提供名字
}
}
示例2:使用Optional
作为方法参数
import java.util.Optional;
public class OptionalParameterExample {
public static void greet(Optional name) {
if (name.isPresent()) {
System.out.println("Hello, " + name.get());
} else {
System.out.println("Hello, stranger!");
}
}
public static void main(String[] args) {
greet(Optional.of("Kimi")); // 有名字
greet(Optional.empty()); // 没有名字
}
}
示例3:使用Optional
在构造函数中
import java.util.Optional;
public class User {
private String name;
private String email;
public User(Optional name, Optional email) {
this.name = name.orElse("Unknown");
this.email = email.orElse("no-email@example.com");
}
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Email: " + email);
}
public static void main(String[] args) {
User user1 = new User(Optional.of("Kimi"), Optional.of("kimi@example.com"));
User user2 = new User(Optional.of("Kimi"), Optional.empty());
User user3 = new User(Optional.empty(), Optional.empty());
user1.displayInfo();
user2.displayInfo();
user3.displayInfo();
}
}
注意事项
- 使用
Optional
避免空指针异常:Optional
类的主要目的是减少代码中null检查的需要。 - 不要过度使用
Optional
:虽然Optional
很有用,但过度使用会使代码难以理解和维护。 Optional
不适合用作返回类型:如果方法总是返回值,那么使用Optional
作为返回类型是不合适的。Optional
不适合用作字段类型:字段通常总是包含值,因此使用Optional
作为字段类型是不合适的。
结论
Java中的Optional
类提供了一种处理可能为null的值的优雅方式。它避免了空指针异常,并允许开发者以更清晰的方式编写代码。然而,Optional
也有其局限性,应当在适当的场景下使用,以保持代码的清晰和可维护性。通过上述示例,我们可以看到Optional
在不同场景下的应用,包括作为方法参数、构造函数参数以及在方法调用中使用。
>
> 【痕迹】QQ+微信朋友圈和聊天记录分析工具
>
> (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。
>
> (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。
>
> (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。
>
> 下载地址:https://www.alipan.com/s/x6fqXe1jVg1
>