Groovy-주석

주석은 프로그램 자체의 일부가 아닌 프로그램에 대한 데이터를 제공하는 메타 데이터의 한 형태입니다. 주석은 주석이 달린 코드의 작동에 직접적인 영향을주지 않습니다.

주석은 주로 다음과 같은 이유로 사용됩니다.

  • Information for the compiler − 컴파일러는 주석을 사용하여 오류를 감지하거나 경고를 억제 할 수 있습니다.

  • Compile-time and deployment-time processing − 소프트웨어 도구는 주석 정보를 처리하여 코드, XML 파일 등을 생성 할 수 있습니다.

  • Runtime processing − 일부 주석은 런타임에 검사 할 수 있습니다.

Groovy에서 기본 주석은 다음과 같습니다.

@interface-at 기호 문자 (@)는 다음에 오는 것이 주석임을 컴파일러에 나타냅니다.

주석은 다음에서 멤버를 정의 할 수 있습니다. the form 본문이없는 메서드 및 선택적 기본값입니다.

주석은 다음 유형에 적용 할 수 있습니다.

문자열 유형

문자열에 대한 주석의 예는 다음과 같습니다.

@interface Simple { 
   String str1() default "HelloWorld"; 
}

열거 형

enum DayOfWeek { mon, tue, wed, thu, fri, sat, sun } 
@interface Scheduled {
   DayOfWeek dayOfWeek() 
}

클래스 유형

@interface Simple {} 
@Simple 
class User {
   String username
   int age
}
 
def user = new User(username: "Joe",age:1); 
println(user.age); 
println(user.username);

주석 멤버 값

어노테이션을 사용하는 경우 최소한 기본값이없는 모든 멤버를 설정해야합니다. 아래에 예가 나와 있습니다. Example 어노테이션을 정의한 후 사용하는 경우 값을 할당해야합니다.

@interface Example {
   int status() 
}

@Example(status = 1)

클로저 주석 매개 변수

Groovy에서 주석의 좋은 기능은 클로저를 주석 값으로 사용할 수도 있다는 것입니다. 따라서 주석은 다양한 표현에 사용될 수 있습니다.

이에 대한 예가 아래에 나와 있습니다. 주석 Onlyif는 클래스 값을 기반으로 작성됩니다. 그런 다음 주석은 숫자 변수의 값에 따라 결과 변수에 다른 메시지를 게시하는 두 가지 방법에 적용됩니다.

@interface OnlyIf {
   Class value() 
}  

@OnlyIf({ number<=6 }) 
void Version6() {
   result << 'Number greater than 6' 
} 

@OnlyIf({ number>=6 }) 
void Version7() {
   result << 'Number greater than 6' 
}

메타 주석

이것은 groovy에서 주석의 매우 유용한 기능입니다. 아래와 같은 방법에 대해 여러 주석이있을 수 있습니다. 때때로 이것은 여러 주석을 갖는 것이 지저분해질 수 있습니다.

@Procedure 
@Master class 
MyMasterProcedure {}

이러한 경우 여러 주석을 함께 묶는 메타 주석을 정의하고 메타 주석을 메서드에 적용 할 수 있습니다. 따라서 위의 예에서는 AnnotationCollector를 사용하여 주석 컬렉션을 정의 할 수 있습니다.

import groovy.transform.AnnotationCollector
  
@Procedure 
@Master 
@AnnotationCollector

이 작업이 완료되면 다음 메타 어노 테이터를 메서드에 적용 할 수 있습니다.

import groovy.transform.AnnotationCollector
  
@Procedure 
@Master 
@AnnotationCollector
  
@MasterProcedure 
class MyMasterProcedure {}