在 Java 里经常“用注解(Annotation)来标注 Field(字段)”,原因主要有以下几类:简化配置、解耦逻辑、让框架自动处理字段、提高可读性和可维护性。下面按常见场景说明。
Field 注解就是写在成员变量上的注解,例如:
public class User {
@NotNull
private String name;
@Column(name = "user_age")
private int age;
}
它不会影响字段本身的类型,但会被编译器或框架在编译期 / 运行期读取。
没有注解时:
if (user.getName() == null) {
throw new RuntimeException("name 不能为空");
}
使用注解后:
@NotNull
private String name;
➡ 校验逻辑由框架(如 Hibernate Validator)统一完成
很多框架通过 Field 注解识别字段用途:
| 框架 | 注解 | 作用 |
|---|---|---|
| Spring | @Autowired |
自动注入对象 |
| JPA / MyBatis | @Column |
映射数据库字段 |
| Jackson | @JsonProperty |
控制 JSON 字段名 |
| Lombok | @Getter |
自动生成 getter |
@Entity
public class User {
@Id
private Long id;
@Column(name = "user_name")
private String userName;
}
➡ JPA 通过注解知道:
@Size(min = 2, max = 10)
private String username;
➡ 在 Controller / Service 层自动校验参数合法性
注解把“通用能力”从业务代码中抽离:
业务类更干净,逻辑更集中。
一眼就能看出字段的:
比写在文档或代码注释里更可靠。
有时候也可以用:
@NotNull
public String getName() { return name; }
区别:
Java 里用 Field 注解,是为了把“字段的元数据”显式声明出来,让框架在编译或运行期自动完成通用处理,从而减少样板代码、降低耦合、提高开发效率。
如果你指的是某个具体注解(如 @Field、@Autowired、@Column),可以告诉我,我可以针对性讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。