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 {}