Java의 주석: 유형, 사용 및 예

게시 됨: 2022-05-19

Java와 같은 프로그래밍 언어의 주석은 Java의 소스 코드와 통합할 수 있는 구문 메타데이터를 나타냅니다. Java 패키지, 변수, 클래스, 매개변수 및 메소드와 같은 다양한 요소에 주석을 달 수 있습니다. 개발자는 Javadoc 태그와 마찬가지로 소스 파일에서 직접 Java 주석을 쉽게 읽을 수 있습니다.

Java 주석은 Java 컴파일러의 출력 Java 클래스 파일에 포함되고 읽을 수도 있습니다. 이를 통해 Java 가상 머신은 주석을 유지 관리하고 런타임에 리플렉션을 통해 주석을 읽을 수 있습니다. Java에서는 기존 주석에서 메타 주석을 빌드할 수 있습니다.

다음은 Java 주석의 몇 가지 기본 사항입니다.

  1. 주석은 항상 '@'로 시작합니다. 예: '@override', '@target', '@SuppressWarnings' 등
  2. 주석은 컴파일된 프로그램의 동작에 영향을 주지 않습니다.
  3. 주석은 메서드, 클래스, 변수 등과 같은 프로그램 구성 요소에 메타데이터를 연결하는 데 도움이 됩니다.
  4. 주석은 컴파일러에서 프로그램을 처리하는 방법에 영향을 줄 수 있으므로 주석이 아닙니다. 프로그램에 대한 추가 컴파일러 정보를 제공하지만 프로그램 자체의 일부는 아닙니다. 따라서 이러한 주석은 컴파일된 프로그램의 실행에 영향을 주지 않습니다.

목차

Java의 주석 유형

1. 단일 값 주석

단일 값 주석은 하나의 멤버만 포함하므로 하나의 약식 양식만 허용합니다. 멤버에는 주석 적용 후 값이 제공되어야 합니다. 그러나 주석의 이름은 지정할 필요가 없습니다. 속기를 사용하려면 멤버에 값이 있어야 합니다. 예를 들어:

@TestAnnotation("테스트");

2. 전체 주석

전체 주석은 데이터 멤버, 값, 쌍 및 이름과 같은 다양한 데이터로 구성됩니다.

예를 들어:

@TestAnnotation(owner=”Rahul”, value=”Class Geeks”)

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

3. 주석 반복

주석이 단일 객체에 두 번 이상 적용될 수 있는 경우 반복 주석으로 레이블이 지정됩니다. 반복 주석은 java.lang.annotation 패키지에 정의된 @Repeatable 태그로 지정됩니다. 값 필드는 반복되는 주석의 컨테이너 유형을 나타냅니다.

컨테이너는 반복되는 주석 배열을 포함하는 값 필드가 있는 주석으로 정의됩니다. 반복되는 주석을 구성하려면 먼저 컨테이너 주석을 생성한 다음 주석 유형을 @Repeatable 주석에 대한 입력으로 지정합니다.

예를 들어:

// 반복 가능한 주석을 보여주는 Java 프로그램

// 필수 클래스 가져오기

import java.lang.annotation.Annotation;

가져오기 java.lang.annotation.Repeatable;

가져오기 java.lang.annotation.Retention;

가져오기 java.lang.annotation.RetentionPolicy;

import java.lang.reflect.Method;

// 단어 주석을 반복 가능하게 만듭니다.

@Retention(RetentionPolicy.RUNTIME)

@Repeatable(MyRepeatedAnnos.class)

@인터페이스 단어

{

문자열 word() 기본 "안녕하세요";

정수 값() 기본값 0;

}

// 컨테이너 주석 생성

@Retention(RetentionPolicy.RUNTIME)

@인터페이스

{

단어[] 값();

}

공개 클래스 메인 {

// newMethod에서 단어 반복

@Words(단어 = "첫 번째", 값 = 1)

@Words(단어 = "초", 값 = 2)

공개 정적 무효 newMethod()

{

메인 obj = 새로운 메인();

노력하다 {

클래스<?> c = obj.getClass();

// newMethod에 대한 주석을 얻습니다.

메소드 m = c.getMethod("newMethod");

// 반복되는 주석 표시

주석

= m.getAnnotation(MyRepeatedAnnos.class);

System.out.println(아노);

}

잡기 (NoSuchMethodException e) {

System.out.println(e);

}

}

공개 정적 무효 메인(String[] 인수) { newMethod(); }

}

최종 출력은 다음과 같습니다. @MyRepeatedAnnos(value={@Words(value=1, word=”First”), @Words(value=2, word=”Second”)})

인기 있는 소프트웨어 엔지니어링 과정 살펴보기

에스엘. 아니 소프트웨어 개발 프로그램
1 LJMU 및 IIITB의 컴퓨터 과학 석사 Caltech CTME 사이버 보안 인증 프로그램
2 전체 스택 개발 부트캠프 블록체인 PG 프로그램
소프트웨어 개발의 이그 제 큐 티브 포스트 대학원 프로그램 - DevOps 전문화 모든 소프트웨어 엔지니어링 코스 보기

3. 마커 주석

마커 주석은 선언 목적으로만 사용됩니다. 이 주석에는 구성원이 포함되어 있지 않으며 그 안에 데이터도 없습니다. 유일한 목적은 주석으로 존재를 유지하는 것입니다. 예: @Override.

4. 주석 입력

이러한 주석은 유형이 사용되는 모든 곳에서 사용할 수 있습니다. 예를 들어 메서드의 반환 유형에 주석을 달 수 있습니다. 유형 주석은 @Target 주석으로 태그가 지정됩니다.

유형 주석을 설명할 수 있는 코드는 다음과 같습니다.

// 필수 클래스 가져오기

가져오기 java.lang.annotation.ElementType;

import java.lang.annotation.Target;

// 타겟 어노테이션을 사용하여 타입 어노테이션

@Target(ElementType.TYPE_USE)

// 단순 유형 주석 선언

@인터페이스 유형AnnoDemo{}

// 메인 클래스

공개 클래스 GFG {

// 메인 드라이버 메소드

공개 정적 무효 메인(문자열[] 인수) {

// 문자열 유형에 주석 달기

@TypeAnnoDemo String string = "이 코드는 유형 주석으로 주석 처리됩니다.";

System.out.println(문자열);

알파벳();

}

// 함수의 반환 유형에 주석 달기

정적 @TypeAnnoDemo int abc() {

System.out.println("이 함수의 반환 유형에 주석이 달려 있습니다.");

반환 0;

}

사전 정의된 주석의 예

앞에서 언급한 다양한 사전 정의된 주석이 있습니다. 살펴보겠습니다.

1. @오버라이드

이 마커 주석은 메서드에서만 사용할 수 있습니다. @override 어노테이션이 있는 모든 메소드는 수퍼클래스의 다른 메소드를 대체해야 합니다. 실패하면 컴파일 타임 오류가 발생합니다. 이것은 슈퍼클래스가 단순히 오버로드되지 않고 실제로 오버라이드되었는지 확인해야 하기 때문에 발생합니다.

재정의 주석을 설명할 수 있는 코드는 다음과 같습니다.

// 클래스 1

클래스 베이스

{

공개 무효 Display()

{

System.out.println("기본 디스플레이()");

}

공개 정적 무효 메인(문자열 인수[])

{

기본 t1 = new Derived();

t1.디스플레이();

}

}

// 클래스 2

// 클래스 위에서 확장

파생 클래스는 기본을 확장합니다.

{

@우세하다

공개 무효 Display()

{

System.out.println("파생된 디스플레이()");

}

}

2. @대상

다른 주석에 대한 주석으로만 사용하기 위한 것입니다. @Target은 ElementType 상수여야 하는 하나의 매개변수를 허용합니다. 매개변수는 적용할 수 있는 선언을 결정합니다. @Target 주석은 단일 값 대신 여러 값을 가질 수 있습니다. 그러나 여러 값을 선언해야 하는 경우 @Target({ElementType.FIELD, ElementType.LOCAL_VARIABLE})과 같은 중괄호 형식이어야 합니다.

@Retention 주석은 주석의 보존 상태를 결정하기 위해 여기에서 사용될 수 있습니다. 세 가지 요소가 @Retention 주석에 영향을 줍니다.

  • 소스: 컴파일러는 일반적으로 소스 수준에서 유지되는 주석을 무시합니다.
  • 런타임: 런타임에 유지됩니다.
  • 클래스: 주석은 컴파일 시간에 유지되며 Java 프로그램에서 무시됩니다.

3. @상속

이 주석은 선언 목적으로만 사용할 수 있으므로 특정 클래스 선언에만 영향을 줍니다. 하나의 주석이 다른 주석을 대체하고 해당 속성을 상속할 수 있습니다. 따라서 하위 클래스에 특정 주석이 없는 경우 상위 클래스를 확인할 수 있습니다. 그러나 주석이 있으면 @Inherited 주석을 얻습니다.

예를 들어:

// 클래스 1

클래스 DeprecatedTest

{

@더 이상 사용되지 않음

공개 무효 Display()

{

System.out.println("사용되지 않는 테스트 디스플레이()");

}

}

// 클래스 2

공개 클래스 SuppressWarningTest

{

// 주석 아래에 주석을 추가하면 프로그램이 생성합니다.

// 경고

@SuppressWarnings({"확인됨", "사용 중단"})

공개 정적 무효 메인(문자열 인수[])

{

DeprecatedTest d1 = 새로운 DeprecatedTest();

d1.디스플레이();

}

}

결론

여기에서 우리는 Java의 주석에 대해 배웠습니다. 또한 Java의 주석 유형과 Java 개발자가 강력하고 확장 가능한 프로그램을 쉽게 만드는 데 도움이 되는 용도에 대해서도 배웠습니다.

Java 개념에 대해 더 자세히 알고 싶다면 upGrad의 소프트웨어 엔지니어링 직업 연결 PG 인증은 Java, HTML, JS, 기타 소프트웨어 개발 도구 및 라이브러리와 같은 프로그래밍 언어에 대한 포괄적인 이해를 얻는 가장 좋은 방법입니다.

이 프로그램은 해당 분야의 초급 직위를 확보하고자 하는 최종 학년 학생 또는 실업자 졸업생을 위해 고안되었습니다. 5개월 과정은 MERN/클라우드 네이티브의 전문화를 다루며 학생들이 5가지 실습 프로젝트에 노출시켜 최고 수준의 포트폴리오를 구축하도록 돕습니다.

기다리지 마세요. 오늘 upGrad로 가서 좌석을 예약하세요!

@jsonproperty 주석이란 무엇입니까?

Jsonproperty 주석을 사용하면 개발자가 직렬화 및 역직렬화 중에 JSON 키를 속성 이름과 매핑할 수 있습니다. Java의 기본 설정에 따라 키는 직렬화 중에 POJO 필드에 매핑됩니다. Json 주석은 매핑된 이름을 나타내는 문자열 속성을 사용하여 이 기본 기능을 재정의하는 데 도움이 됩니다.

최대 절전 모드 주석이란 무엇입니까?

Hibernate Annotations는 Object 및 Relational Table을 매핑할 때 메타데이터를 지정하는 또 다른 기술입니다. XML 매핑 메타데이터 대신 사용할 수 있는 강력하고 비교적 새로운 매핑 방법입니다. 최대 절전 모드 주석을 사용하여 사용자는 코드도 포함하는 단일 POJO Java 파일에 메타데이터를 저장할 수 있으므로 테이블 구조를 더 잘 이해하는 데 도움이 됩니다.

@SuppressWarnings는 무엇입니까?

@SuppressWarnings 주석은 억제된 경고를 컴파일러에 알립니다. 알림은 이름별로 문자열 형식으로 표시됩니다. 어떤 종류의 선언에도 주어질 수 있습니다. Java는 경고를 확인되지 않은 것과 더 이상 사용되지 않는 두 가지 클래스로 분류합니다. 이전 코드가 제네릭 기반 코드와 상호 작용하면 확인되지 않은 경고가 생성됩니다.