주석 유형

주석에는 세 가지 유형이 있습니다.

  1. 마커 주석
  2. 단일 값 주석
  3. 다중 값 주석

마커 주석은 메서드가 없는 주석입니다. 예를 들어:

@interface MyAnnotation{}

2) 단일 값 주석

단일 값 주석은 하나의 메서드만 포함하는 주석 유형입니다. 예를 들어:

@interface MyAnnotation{
int value();
}

@interface MyAnnotation{
int value() default 0;
}

단일 값 주석을 사용하는 코드를 살펴보겠습니다.

@MyAnnotation(value=10)

3) 다중 값 주석

여러 메서드가 있는 주석을 다중 값 주석이라고 합니다. 예로서:

@interface MyAnnotaion{
int value1();
String value1();
String value2();
String value3();
}
}

@interface MyAnnotation{
int value1() default 1;
String value2() default "";
String value3() default "xyz";
}

다중값 주석을 사용하는 코드를 살펴보자.

@MyAnnotation(value1 = 10, value2 = "Arun Kumar", value3 = "Ghaziabad")

  • @표적
  • @보유
  • @상속
  • @문서화

@Target 태그는 주석이 적용되는 유형을 지정하는 데 사용됩니다.

java.lang의 주석.

ElementType 열거형은 TYPE, METHOD, FIELD 등과 같이 주석이 적용될 요소의 유형을 지정하는 여러 상수를 선언합니다. ElementType 열거형 상수를 살펴보겠습니다.

클래스에 대한 주석을 지정하는 예

@Target(ElementType.TYPE)
@interface MyAnnotation{
int value1();
String value2();
}

@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
@interface MyAnnotation{
int value1();
String value2();
}

@Retention 주석은 사용 가능한 주석 수준을 지정합니다.

RetentionPolicy를 지정하는 예

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface MyAnnotation{
int value1();
String value2();
}

주석 생성, 적용, 접근에 대한 기본적인 예를 살펴보자.

//Creating annotation
import java.lang.annotation.*;
import java.lang.reflect.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyAnnotation{
int value(();
}
//Applying annotation
class Hello{
@MyAnnotation(value = 10)
public void sayHello(){System.out.println("hello annotation");}
}
//Accessing annotation
class TestCustomAnnotation1{
public static void main(String args[])throws Exception{
Hello h = new Hello();
Method m = h.getClass().getMethod("sayHello");
MyAnnotation manno = m.getAnnotation(MyAnnotation.class);
System.out.pirntln("value is:" + manno.value());
}}

value is: 10

실제로 Java 프로그래머는 주석만 사용하면 됩니다. 주석을 생성하거나 액세스할 필요는 없습니다. 구현 제공자는 주석 생성 및 액세스를 담당합니다. Java 컴파일러 또는 JVM은 주석을 대신하여 몇 가지 추가 작업을 수행합니다.

@상속

어노테이션은 기본적으로 서브클래스에 상속되지 않습니다. @Inherited 주석은 주석이 하위 클래스에 상속됨을 나타냅니다.

@Inherited
@interface ForEveryone{}//Now it will be available to subclass also
@interface ForEveryone{}
class Superclass{}
class Subclass extends Superclass{}

@Documented 문서에 포함할 주석을 표시합니다.

Suggested posts

기독교인에 대한 박해: 우리가 말하지 않는 증오 범죄

이슬람 혐오증은 잊으십시오. 기독교인(및 유대인)은 종교적 증오 범죄의 주요 피해자입니다.

기독교인에 대한 박해: 우리가 말하지 않는 증오 범죄

이성적인 마음을 가진 사람이라면 정치계와 언론계가 좌파, 심지어 극좌파에 의해 지배되고 있다는 사실을 알고 있습니다. 종교 분야에서 이러한 불균형은 분명히 눈에 띕니다. 좌익 신문과 네트워크는 기독교 신앙을 옹호하기 위해 서두르지 않습니다.

취하기의 아이의 첫 번째 책

취하기의 아이의 첫 번째 책

(경고- 이것은 유쾌하게 전복하려는 풍자입니다. 절대 어린이용이 아닙니다.) 당신은 엄마와 아빠가 부엌에 숨어서 그 냄새나는 담배를 피우는 것을 본 적이 있습니다. 그들은 당신에게 말합니다.

Related posts

Work Week에서의 학습은 생각보다 중요합니다.

Work Week에서의 학습은 생각보다 중요합니다.

우리는 종종 우리에게 좋다고 알고 있는 것을 구현하는 데 어려움을 겪고 있습니다. 중요한 다른 사람에게 우리가 그들을 사랑한다고 말하는 것부터 해적처럼 이야기하는 것을 기억하는 것까지, 그들이 이미 그런 일을 하고 있기 때문에 하루, 일주일 또는 한 달의 이벤트가 필요하지 않다고 주장하는 사람들이 항상 있을 것입니다.

대명사는 정말 무섭다

너무 자주 그렇듯 갑자기 와닿는다 다시 중간쯤이야 <아니, 태평양에 있는 사람 말고 마룬, 카니발에 있는 사람> 모든 헤드라인이 시끄러워…..

저널 아웃버트

저널 아웃버트

오픈 다이어리: 하루의 사진. 나는 항상 이야기에 매료되었습니다.

Goodreads 읽기 챌린지는 독성이 있습니다.

Goodreads 읽기 챌린지는 독성이 있습니다.

지역 서점과 또 다른 책을 흥정하면서 손에 가려움증이 퍼졌습니다. 내가 최근에 구입한 나머지 책과 같은 이 책은 내 'To Be Read'(TBR) 더미에서 왕좌를 찾을 것입니다. 그러나 나는 그것을 샀다.