在 Java 里,void 和 “空(null)” 是两个完全不同的概念,很多人会混淆。下面分清楚并说明正确使用方式。
void 是什么?void 是 方法返回值类型,表示这个方法不返回任何值。
public void sayHello() {
System.out.println("Hello");
}
✅ 特点:
return 值;return;(仅用于提前结束方法)public void test(int x) {
if (x < 0) return; // 合法
System.out.println(x);
}
❌ 错误示例:
public void test() {
return 10; // 编译错误
}
null 是什么?null 表示 引用类型的“空值”,不是 void。
String s = null;
List<String> list = null;
✅ null 只能用于:
int、double 等)int a = null; // 编译错误
void 和 null 的关系(重点)❗ void 方法不能返回 null
public void test() {
return null; // 错误
}
但你可以:
public String test() {
return null; // 合法
}
void 表示“只做事情,不返回值”public void save(User user) {
// 保存到数据库
}
null 表示“没有结果”public User findById(Long id) {
if (id == null) return null;
return userRepository.findById(id);
}
null 的更好方式(推荐)public Optional<User> findById(Long id) {
return Optional.ofNullable(userRepository.findById(id));
}
| 错误 | 原因 |
|---|---|
void 方法 return 值 |
void 不返回值 |
int x = null |
基本类型不能为 null |
把 void 当“空对象” |
void 不是对象 |
滥用 null |
易 NullPointerException |
void是“什么都不返回”
null是“返回一个空的引用”
两者不能混用
如果你有具体代码场景(比如方法设计、接口返回、Spring 等),我可以帮你直接改。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。