Annotations(metadata라고도 함)는 코드에 정보를 추가할 수 있는 공식적인 방법을 제공하므로 나중에 데이터에서 매우 편리하게 사용할 수 있습니다.
Annotated 방식은 다른 방식과 다르지 않습니다. 주석은 public, static 또는 void 등 메서드의 모든 수정자와 함께 사용할 수 있습니다. 구문 관점에서 주석은 수정자와 거의 동일하게 사용됩니다.
주석의 정의는 인터페이스의 정의와 매우 유사합니다. 실제로 다른 Java 인터페이스와 마찬가지로 주석도 클래스 파일 으로 컴파일됩니다.
주석을 정의할 때 @Target
, @Retention
과 같은 meta-annotations이 필요합니다. @Target
,@Retention
。
在注解中,一般都会包含一些元素以表示某些值。当分析处理注解时,程序或工具可以利用这些值。注解的元素看起来就像接口的方法,唯一的区别是你可以为其指定默认值。元素的类型有限制。
没有元素的注解称为标记注解(marker annotation)。
所有注解都继承了annotation
。
package net.mrliuli.annotations;import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Test {} //(marker annotation)
定义在java.lang
中的三种标准注解:
@Overrided
@Deprecated
@SuppressWarnings
四种元注解:
@Target 表示该注解可以用于什么地方。
@Retension 表示需要在什么级别保存该注解信息。
@Documented 将此注解包含在Javadoc中。
@Inherited 允许子类继承父类中的注解。
注解元素的类型有限制,不可以是任意类型,使用除允许类型以外的类型编译器会报错。
默认值限制:
@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface SimulationNull{ public int id() default -1; public String description() default ""; }
首先,元素不能有不确定的值。也就是说,元素必须要么具有默认值,要么在使用注解时提供元素的值。
其次,对于非基本类型的元素,无论是在源代码中声明时,或是在注解接口中定义默认值时,都不能以null
요소가 없는 주석을 마커 주석이라고 합니다. 모든 주석은
주석
1.2 3개의 표준 주석과 4개의 메타 주석
java.lang
에 정의된 3개의 표준 주석: null
을 값으로 사용할 수 없습니다. 이러한 제약으로 인해 주석 프로세서가 요소의 존재 여부를 표현하기가 어렵습니다. 각 주석 선언에는 모든 요소가 존재하고 해당 값이 있기 때문입니다. 이 제약 조건을 해결하기 위해 빈 문자열이나 음수와 같은 일부 특수 값만 정의하여 요소가 존재하지 않음을 나타낼 수 있습니다. 🎜🎜🎜🎜🎜 외부 파일을 생성합니다. 일부 프레임워크에서는 소스 코드로 작업하려면 몇 가지 추가 정보가 필요하며, 이 경우 주석은 해당 값을 표현하는 데 가장 적합합니다. Enterprise JavaBeans와 같은 기술에는 배포 설명 파일이 필요합니다. 웹 서비스, 사용자 정의 태그 라이브러리 및 객체/관계형 매핑 도구(예: Toplink 및 Hibernate)는 일반적으로 XML 설명 파일이 필요하며 이러한 설명 파일은 소스 코드와 분리됩니다. 🎜🎜🎜🎜2 주석 프로세서 작성🎜🎜 주석 사용 과정에서 중요한 부분은 주석을 읽는 데 사용되는 🎜🎜주석 프로세서🎜🎜를 만들고 사용하는 것입니다🎜. 🎜🎜🎜🎜반사 메커니즘의 API는 주석 프로세서를 구성할 수 있습니다🎜🎜🎜🎜외부 도구 apt는 주석으로 Java 소스 코드를 구문 분석할 수 있습니다🎜🎜🎜🎜관련 기사: 🎜🎜🎜Java 프로그래밍 사고 학습 수업(5) 18장 -Java IO System🎜🎜🎜🎜Java 프로그래밍 사고 학습 수업(6) 19장 - 열거형🎜🎜위 내용은 자바 프로그래밍 사고 학습 수업(7) 20장 - 노트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!