>  기사  >  Java  >  Java 지식 포인트에 대한 자세한 설명: 주석 및 메타 주석

Java 지식 포인트에 대한 자세한 설명: 주석 및 메타 주석

WBOY
WBOY앞으로
2022-05-13 11:57:181600검색

이 글은 java에 대한 관련 지식을 제공합니다. 주로 Annotation에 대한 기본 소개, Annotation에 대한 기본 소개 등을 포함하여 Annotation 및 Meta Annotation과 관련된 문제를 소개합니다. 도움이 되기를 바랍니다. 모든 사람.

Java 지식 포인트에 대한 자세한 설명: 주석 및 메타 주석

추천 학습: "java 비디오 튜토리얼"

1. Annotation 기본 소개

Annotation(annotation)은 메타데이터(Metadata)라고도 하며 JDK1.5 이상 버전에서 도입되었습니다. . 패키지, 클래스, 메서드, 속성, 생성자, 지역 변수 등과 같은 데이터 정보를 수정하고 해석하는 데 사용됩니다. 문서를 작성하고, 코드의 종속성을 추적하고, 기본적인 컴파일 타임 검사를 수행하는 데에도 사용할 수 있습니다.

주석은 '@annotation 이름'으로 코드에 존재합니다. 주석 매개변수의 수에 따라 주석을 마크 주석, 단일 값 주석, 전체 주석의 세 가지 범주로 나눌 수 있습니다. 주석과 마찬가지로 주석도 프로그램 논리에 영향을 미치지 않지만 컴파일하거나 실행할 수 있으며 코드에 포함된 보충 정보와 동일합니다.

또한 컴파일 중에 코드의 주석이 소스 코드 수준에만 존재하는지 아니면 클래스 파일이나 런타임(SOURCE/CLASS/RUNTIME)에도 나타날 수 있는지 선택할 수 있습니다.

JavaSE에서 주석을 사용하는 목적은 더 이상 사용되지 않는 기능 표시, 경고 무시 등 비교적 간단합니다. 주석은 애플리케이션의 모든 측면을 구성하는 데 사용되어 이전 버전의 Java EE에 남아 있는 번거로운 코드 및 XML 구성을 대체하는 등 Java EE에서 더 중요한 역할을 합니다.


2. Annotation 기본 소개

1. 세 가지 기본 Annotation

@Override : 메서드를 제한하는 것은 상위 클래스 메서드를 재정의하는 것입니다 , 이 주석은 메서드에만 사용할 수 있습니다

@Deprecated : 특정 프로그램 요소를 나타내는 데 사용됩니다 ( 카테고리 , 방법 등 ) 오래됨

@SuppressWarnings : 컴파일러 경고 억제


2, 코드 예제

@Override

class Son extends Father{

    @Override
    public void play(){}

}

참고:

@Override는 하위 클래스 메서드 재정의를 나타냅니다. 학부모 수업 Play

没有 没有 여기에 쓰지 않으면 @오버라이드 여전히 상위 클래스 ply를 재정의합니다

@Override 주석을 작성하면 컴파일러는 해당 메서드가 실제로 상위 클래스를 재정의하는지 확인합니다 방법, 실제로 다시 작성하면 컴파일이 통과되고, 다시 작성하지 않으면 컴파일 오류가 발생합니다.

@Override는 메서드만 수정할 수 있으며 다른 클래스, 패키지, 속성 등은 수정할 수 없습니다.

@Deprecated

@Deprecated
class A{
    @Deprecated
    public static int name = 1;

    @Deprecated
    public void play(){ }
}

참고:

메서드, 클래스, 필드, 패키지, 매개 변수 등을 수정할 수 있습니다.

호환성을 달성하는 것이 역할 이전 버전과 새 버전 간 전환

@

SuppressWarnings

@SuppressWarnings ("all")
public class word{ }

注意:

         关于 SuppressWarnings 作用范围是和你放置的位置相关。比如@SuppressWarnings 放置在 main 方法,那么抑制警告的范围就是 main

         通过 @SuppressWarnings 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。


三、@SuppressWarnings的指定警告类型

关键字 解释
all 抑制所有警告
boxing 抑制与封装/拆装作业相关的警告
cast 抑制与强制转型作业相关的警告
dep-ann 抑制与淘汰注释相关的警告
deprecation 抑制与淘汰的相关警告
fallthrough 抑制与 switch 陈述式中遗漏 break 相关的警告
finally 抑制与未传回 finally 区块相关的警告
hiding 抑制与隐藏变数的区域变数相关的警告
incomplete-switch 抑制与 switch 陈述式(enum case)中遗漏项目相关的警告
javadoc 抑制与 javadoc 相关的警告
nls 抑制与非 nls 字串文字相关的警告
null 抑制与空值分析相关的警告
rawtypes 抑制与使用 raw 类型相关的警告
resource 抑制与使用 Closeable 类型的资源相关的警告
restriction 抑制与使用不建议或禁止参照相关的警告
serial 抑制与可序列化的类别遗漏 serialVersionUID 栏位相关的警告
static-access 抑制与静态存取不正确相关的警告
static-method 선언될 수 있는 메서드와 관련된 경고를 억제합니다. static
super 수퍼 호출 없이 대체 메서드와 관련된 경고를 억제합니다
Synthetic-access 내부 클래스에 대한 최적화되지 않은 액세스와 관련된 경고를 억제합니다
sync-override 대체 동기화 방법 억제 ​​동기화 누락에 대한 경고
ㅋㅋㅋ 접속 미사용
사용하지 않는 코드 및 비활성화된 코드와 관련된 경고를 표시하지 않습니다

4. 메타 주석

1. 기본 소개

▶ 메타 주석이란:

@Override, @Deprecated, @SuppressWarnings

▶ 4가지 메타 -annotations:

보유:

지정 주석의 범위, 세 가지 유형: SOURCE, CLASS, RUNTIME ​​​상속: 하위 클래스는 상위 클래스 주석을 상속합니다

▶ 주석 관련 참고 사항:

주석은 소스 코드에만 존재하며 클래스 바이트코드 파일에는 포함되지 않습니다.

기본 보존 정책, 주석은 클래스 바이트코드 파일에 존재하지만 런타임 시 얻을 수 없습니다. C Note는 런타임 시 리플렉션을 통해 얻을 수 있습니다. 먼저 수명 주기 소스 & lt; 런타임을 명확히 해야 합니다. 에서 ①: 일반적으로 실행 중 주석 정보를 동적으로 가져와야 하는 경우 런타임 주석만 사용할 수 있습니다. ②: 일부 보조 코드 생성과 같은 일부 전처리 작업을 컴파일하려는 경우(예: 버터나이프(예: 버터나이프(예: Butterknife ))에는 CLASS 주석을 사용하세요.

          ③: @Override 및 @SuppressWarnings와 같은 일부 확인 작업을 수행하면 SOURCE 주석을 사용할 수 있습니다.

2. 보존 주석
설명:




은 주석 정의

를 수정하는 데에만 사용할 수 있습니다. 주석

은 더 많은 내용을 유지할 수 있습니다. 오랫동안 @Rentention에는 RetentionPolicy 유형의 멤버 변수가 포함되어 있습니다.

@Rentention 을 사용하는 경우 이


멤버 변수에 대한 값을 지정해야 합니다(3가지 값이 있음).

세 가지 값:

RetentionPolicy.SOURCE: 컴파일러를 사용한 후에는 이 전략에 대한 주석을 삭제하세요.

​​​​ RetentionPolicy.CLASS: 컴파일러는 클래스에 주석을 기록합니다. 파일에 . 달릴 때 자바 시술시간 , JVM 주석은 유지되지 않습니다. 이것이 기본값입니다.

RetentionPolicy.RUNTIME: 컴파일러는 클래스에 주석을 기록합니다 파일 속 . 달릴 때 자바 절차, JVM 주석은 유지됩니다 . ​ 프로그램은 리플렉션을 통해 이 주석을 얻을 수 있습니다.

3. 대상 주석

설명:

은 수정된 주석을 사용하여 수정할 수 있는 프로그램 요소를 지정하는 주석 정의를 수정하는 데 사용됩니다. @Target에는 value라는 멤버 변수도 포함되어 있습니다.

4,
Documented annotation

설명:

@Documented: 이 메타 주석에 의해 수정된 Annotation 클래스가 javadoc 도구에 의해 문서로 추출되도록 지정하는 데 사용됩니다. 즉, 생성된 문서에 주석을 볼 수 있습니다.

참고:

@Documented로 정의된 주석은 보존 값을 RUNTIME으로 설정해야 합니다.


5. 상속된 주석

설명:

@Inherited에 의해 수정된 주석이 사용되면 해당 하위 클래스에 자동으로 이 주석이 적용됩니다

추천 학습: "java 동영상 튜토리얼"

위 내용은 Java 지식 포인트에 대한 자세한 설명: 주석 및 메타 주석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제