可以,但要看具体场景。下面分情况说明。
final 字段finalclass User {
private final String name;
public User(String name) {
this.name = name;
}
}
private final List<String> list = new ArrayList<>();
// list = new ArrayList<>(); ❌ 不行
list.add("abc"); ✅ 可以
final✅ 适合
class Config {
public static final int MAX_SIZE = 100;
}
❌ 不适合
final?❌ 不推荐
@Entity
class User {
private final String name; // ❌ JPA 不友好
}
原因:
final 会限制代理、懒加载、反序列化✅ 正确做法:
@Entity
class User {
private String name; // 不用 final
}
class User(val name: String)
val ≈ Java 的 finalfinal| 场景 | 能否 final |
|---|---|
| Java 普通类字段 | ✅ 可以 |
| 不可变对象 | ✅ 推荐 |
| 静态常量 | ✅ 推荐 |
| JPA / ORM 实体 | ❌ 不推荐 |
| 需要后期修改 | ❌ 不行 |
如果你有具体语言(Java / Kotlin / C#)或框架(Spring / JPA),我可以给你更精确的建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。