간단한 Java 주석
JDK5에서는 세 가지 간단한 주석 유형만 제공합니다. 이 세 가지 유형은 오류를 방지하거나 알림을 제공하는 데 사용됩니다.
1.오버라이드
2. 더 이상 사용되지 않음
3.경고 억제
JDK5(다른 용어, Tiger)에는 실제로 많은 내장 주석이 없다는 점에 유의하는 것이 중요합니다. 대신 핵심 Java가 주석 기능을 지원하는 데 사용된다고 엄격하게 명시되어 있습니다. 메타데이터 기능을 정의합니다. 프로그래머가 작성해야 합니다. 다른 JSR 표준에서도 일련의 표준 주석 유형을 작성하여 이러한 세 가지 간단한 주석을 자세히 설명합니다.
주석 재정의
Override 주석은 주석이 달린 메서드가 슈퍼 클래스의 메서드를 재정의해야 함을 나타냅니다.
메서드가 이 주석을 사용하지만 슈퍼클래스의 메서드를 재정의하지 않는 경우(예: 대소문자가 잘못되었거나 매개변수가 잘못되었거나 메서드가 서브클래스 자체에서 정의됨) 컴파일러에서 오류가 발생합니다.
(참고: 인터페이스에서 메서드를 구현할 때 JRE5에서는 재정의 주석을 사용할 수 없습니다. JRE6에서는 이를 허용합니다. JRE5에서는 이 오류를 여러 번 보고합니다.)
예제 1에서는 주석 재정의를 보여줍니다.
Java 주석 예 1:
다음과 같이 코드 코드를 복사합니다.
공개 클래스 Test_Override {
@보수
공개 문자열 toString() {
return super.toString() + "'Override' 주석을 사용하여 테스트";
}
}
예를 들어, toString 메소드 이름을 "tostring"(모두 소문자)으로 바꾸면 컴파일할 때 다음과 유사한 오류 메시지가 표시됩니다.
다음과 같이 코드 코드를 복사합니다.
1개의 소스 파일을 D:tempNew 폴더로 컴파일 (2)
TestJavaApplication1buildclasses
D:temp새 폴더 (2)TestJavaApplication1srctest
myannotationTest_Override.java:24: 메소드가 대체되지 않습니다.
슈퍼클래스의 메소드
@보수
오류 1개
빌드 실패(총 시간: 0초)
물론 Eclipse는 적십자를 직접 보고할 것입니다. 이제 IDE는 사용하기 매우 쉬워졌으므로 초보자는 JDK 명령줄을 조작해서는 안 됩니다.
더 이상 사용되지 않는 주석
이 주석은 프로그램이 더 이상 사용되지 않는(더 이상 사용되지 않음, 더 이상 사용되지 않음, 더 이상 사용되지 않음) 요소를 호출하는 경우 컴파일러가 경고 메시지를 표시해야 함을 나타냅니다. 예제 2에서는 더 이상 사용되지 않음 주석을 사용하는 방법을 보여줍니다.
Java 주석 예 2
먼저, 클래스를 생성하고 다음과 같이 메서드를 더 이상 사용되지 않는 것으로 표시합니다.
다음과 같이 코드 코드를 복사합니다.
공개 클래스 Test_Deprecated {
@더 이상 사용되지 않음
공공 무효 doSomething() {
System.out.println("더 이상 사용되지 않는 주석을 사용하여 테스트: 'Deprecated'");
}
}
다음으로, 다른 클래스에서 이 메서드를 호출해 보세요.
다음과 같이 코드 코드를 복사합니다.
공개 클래스 TestAnnotations {
public static void main(String arg[])에서 예외가 발생합니다.
새로운 TestAnnotations();
}
공개 TestAnnotations() {
Test_Deprecated t2=new Test_Deprecated();
t2.doSomething();
}
이 예제의 doSomething() 메서드는 더 이상 사용되지 않는 메서드로 선언되므로 일반적인 상황에서는 이 메서드를 호출하면 안 됩니다. 그러나 TestAnnotations.java 파일을 컴파일할 때는 컴파일러가 표시합니다. 다음과 유사한 경고 메시지가 표시됩니다(Eclipse가 경고합니다).
다음과 같이 코드 코드를 복사합니다.
1개의 소스 파일을 D:tempNew 폴더로 컴파일
(2)TestJavaApplication1buildclasses
D:temp새 폴더
(2)TestJavaApplication1srctestmyannotation
TestAnnotations.java:27:
경고: [지원 중단] doSomething() in
test.myannotation.Test_Deprecated가 더 이상 사용되지 않습니다.
t2.doSomething();
경고 1개
경고 주석 억제
이 주석은 주석이 달린 요소와 모든 하위 요소에 대한 경고 메시지가 억제되어야 함을 컴파일러에 알려줍니다. 예를 들어 클래스에서 Suppresswarnings 주석을 사용한다고 가정합니다. 경고를 억제합니다. 한 메소드에서 Suppresswarnings 주석을 사용하여 다른 경고를 억제하면 두 경고가 모두 메소드 수준에서 억제됩니다. 예 3을 참조하세요.
Java 주석 예 3:
다음과 같이 코드 코드를 복사합니다.
공개 클래스 TestAnnotations {
public static void main(String arg[])에서 예외가 발생합니다.
새로운 TestAnnotations().doSomeTestNow();
}
@SuppressWarnings({"지원 중단"})
공공 무효 doSomeTestNow() {
Test_Deprecated t2 = new Test_Deprecated();
t2.doSomething();
}
}
이 예에서는 @SuppressWarnings를 사용하여 예 2에 표시된 지원 중단 경고 메시지를 표시하지 않습니다. 이 메서드에 대한 이러한 유형의 경고가 표시되지 않으므로 더 이상 "지원 중단" 경고가 표시되지 않습니다.
참고: 가장 안쪽 요소에 이 주석을 사용하는 것이 더 좋습니다. 따라서 특정 메서드에 대한 경고만 표시하지 않으려면 클래스에 주석을 사용하는 것보다 메서드에 주석을 달아야 합니다.
Meta-Annotations(Java 주석 유형)
실제로 주석이라고 불리는 메타 주석에는 다음과 같은 네 가지 유형이 있습니다.
1.대상
2.보존
3. 문서화
4.상속됨
대상 주석
대상 주석은 주석 유형이 적용되는 대상 요소를 나타냅니다. 여기에는 다음 열거 유형 값이 포함됩니다.
1.@Target(ElementType.TYPE)--모든 클래스의 요소에 적용 가능
2.@Target(ElementType.FIELD) - 필드 또는 속성에만 적용됩니다.
3.@Target(ElementType.METHOD)--메서드 주석에만 적용 가능
4.@Target(ElementType.PARAMETER) - 메소드 매개변수에만 적용됩니다.
5.@Target(ElementType.CONSTRUCTOR)--생성자에만 적용 가능
6.@Target(ElementType.LOCAL_VARIABLE)--지역 변수에만 적용 가능
7.@Target(ElementType.ANNOTATION_TYPE)——선언된 유형 자체가 주석 유형임을 나타냅니다.
예제 4에서는 Target 주석을 보여줍니다.
Java 주석 예 4
먼저 아래와 같이 @Target 메타 주석을 사용하여 Test_Target이라는 주석 유형이 정의됩니다.
다음과 같이 코드 코드를 복사합니다.
@Target(요소 유형.METHOD)
공개 @interface Test_Target {
공개 문자열 doTestTarget();
}
다음으로 Test_Target으로 주석을 추가할 클래스를 만듭니다.
다음과 같이 코드 코드를 복사합니다.
공개 클래스 TestAnnotations {
공개 정적 무효 메인(문자열 인수[]) {
새로운 TestAnnotations().doTestTarget();
}
// 메소드에 주석을 사용하세요. 좋습니다.
// 중간, 2줄 등에는 줄 바꿈이 있을 수 없습니다. Java는 중복되는 줄 바꿈을 무시합니다.
@Test_Target(doTestTarget="안녕하세요!")
공공 무효 doTestTarget() {
System.out.printf("테스트 대상 주석");
}
}
@Target(ElementType.METHOD) 주석은 주석 유형이 메소드 주석에만 사용될 수 있음을 나타냅니다. 이 코드를 컴파일하면 경고 메시지가 표시되지 않습니다. 그러나 이 주석이 문자열 변수에 선언되면 어떻게 될까요? 무엇입니까?
다음과 같이 코드 코드를 복사합니다.
공개 클래스 TestAnnotations {
// 이는 잘못된 접근 방식이며 주석의 수준이 잘못되어 컴파일이 통과되지 않습니다.
// 메타 주석은 메서드에만 주석을 달 수 있으며 속성에 주석을 다는 데 사용할 수 없음을 나타냅니다.
@Test_Target(doTestTarget="안녕하세요!")
개인 문자열 str;
공개 정적 무효 메인(문자열 인수[]) {
새로운 TestAnnotations().doTestTarget();
}
공공 무효 doTestTarget() {
System.out.printf("테스트 대상 주석");
}
}
유일한 변경 사항은 주석 선언이 메서드 수준에서 필드 수준으로 이동한다는 것인데, 이는 잘못된 것입니다. @Test_Target 주석이 메서드 수준에서만 적용되도록 정의했기 때문에 이 클래스를 컴파일하려고 하면 오류가 발생할 수 있습니다. 다음과 같은 메시지:
다음과 같이 코드 코드를 복사합니다.
"TestAnnotations.java":
D:R_AND_DTestAnnotationsrctestmyannotation
TestAnnotations.java:16:
이 종류의 선언에는 주석 유형을 적용할 수 없습니다.
16, 열 0
@Test_Target(doTestTarget="안녕하세요!")
^
javac 컴파일 오류