자바 주석 예제

간단한 단위 테스트 예제를 만들고 새 사용자 지정 주석(@Test 및 @TesterInfo 주석을 추가합니다. @Target 다른 어노개의 어노미로만 사용되도록 설계되었습니다. @Target ElementType 열거형에서 일정해야 하는 하나의 인수를 취합니다. 이 인수는 추가 를 적용할 수 있는 선언의 형식을 지정합니다. 상수는 해당 선언 유형과 함께 아래에 표시됩니다. 메서드, 형식 또는 패키지(파일 package-info.java를 통해)에 대해 지정할 수 있는 @NonNullByDefault 어노미를 통해 기본값을 지정할 수도 있습니다. 전체 패키지에 대해 지정하려면 패키지에 다음 패키지 info.java 파일을 만듭니다(예: com.vogella.test.nullannatations). 이 추가는 추가된 메서드가 재정의된 메서드가 있는지 확인합니다. 부모 클래스 중 하나에서 추가된 메서드를 찾지 못하거나 구현된 인터페이스에서 컴파일 시간 «오류»를 발생시킵니다. 매우 유용한 어노미와 나는 그것을 자주 사용하는 것이 좋습니다. Windows Java 컴파일러 오류/경고를 선택하고 추가 를 기반으로 하는 null 분석 활성화를 선택합니다.

주석은 런타임시 프로그램에 영향을 주지 않습니다. 이는 프레임워크가 런타임에 있는 상태의 존재에 따라 동작을 변경하지 않을 수 있지만, 추가를 포함한다고 해서 프로그램의 런타임 동작자체가 변경되지 않는다는 것을 의미하지는 않습니다. 이것은 미묘한 차이로 보일 수 있지만 주석의 유용성을 파악하기 위해 이해해야하는 것은 매우 중요합니다. [1] — 자바: 전체 참조, 9판; Schildt, 허버트 의 생성, 적용 및 주석에 액세스의 간단한 예를 보자. @Target 어구를 사용하여 클래스, 인터페이스 또는 메서드와 같은 특정 java 요소에 대한 새 추가 프로그램의 사용을 제한합니다. 대상을 지정한 후에는 지정된 요소에만 새 추가를 사용할 수 있습니다. @JsonField 개의 추가 된 위의 용도를 감안할 때, 우리는 자동차 ject 는 형식 {«manufacturer»:»someMake», «model»:»someModel»}의 JSON 문자열로 직렬화 될 것으로 예상됩니다 (참고, 나중에 볼 수 있듯이, 우리는 키 – 제조업체의 순서를 무시하고 모델-이 JSON 문자열에서). 계속하기 전에 @JsonField 주석을 추가해도 Car 클래스의 런타임 동작이 변경되지 않습니다. 이 클래스를 컴파일하는 경우 @JsonField 주석이 포함되면 주석을 생략한 것보다 더 이상 Car 클래스의 동작이 향상되지 않습니다. 이러한 주석은 Car 클래스의 클래스 파일에 값 매개 변수 값과 함께 간단히 기록됩니다.

시스템의 런타임 동작을 변경하려면 이러한 주석을 처리해야 합니다. 몇 가지 예 사용자 지정 주석 정의 및 사용법으로 나열할 수 있습니다. 예를 들어 JSON 문자열로 직렬화하려는 Person 형식의 개체가 있다고 가정해 보겠습니다. 이 형식에는 이름과 성의 첫 글자대금을 대문자로 대하는 메서드가 있습니다.