> Java > java지도 시간 > 본문

Java에서 일반적으로 사용되는 주석을 어떻게 구현합니까?

php是最好的语言
풀어 주다: 2018-07-27 09:29:19
원래의
1370명이 탐색했습니다.

"Java" 우리가 자주 사용하는 Java Annotation이 어떻게 구현되어 있는지 아시나요? Annotation은 태그와 동일합니다. Annotation과 Annotation의 차이점은 Annotation의 내용을 사용할 수 있다는 점입니다. 다음으로 Java Annotation에 대해 알아 보겠습니다.

주석을 사용하려면 아래와 같이 주석 자체, 주석 사용 클래스, 주석 처리 클래스의 세 부분으로 나눌 수 있습니다. 그림 설명

주석의 구조

이제 어떻게 주석을 사용하는지 살펴보겠습니다. 코드 작동

1단계: 새 주석 만들기
PlayerName 및 PlayerInfor라는 두 개의 새 주석 만들기

PlayerName:

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java .lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.FIELD)

@ Documented

public @interface PlayerName {

String value() default "";

}

PlayerInfor:

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang .annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.FIELD)

@Documented

public @interface PlayerInfor {

public enum Color{Blue,Red,White};

Color color() 기본값 Color.Blue;

int number() 기본값 7;

int age();

String club () 기본 "Manchester United";

}

2단계: 엔터티 클래스 정의 및 새로 생성된 주석 사용
새 FootballPlayer 클래스 만들기

FootballPlayer:

public 클래스 FootballPlayer {

//주석 달기 PlayerName 엔터티 클래스의 name 속성에 바인딩

@PlayerName("Rooney")

public String name;

//PlayerInfor 주석을 엔터티 클래스의 playInfo 속성에 바인딩

@PlayerInfor(color=Color. 빨간색,숫자=10,나이=30)

public String playInfo;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPlayInfo() {

return playInfo;

}

public void setPlayInfo(String playInfo) {

this.playInfo = playInfo;

}

}

3단계: 주석 정의 클래스 처리, 엔터티 클래스의 주석 처리
New AnnoUtil 도구 클래스

AnnoUtil:

import java.lang.reflect.Field;

public class AnnoUtil {

public static void getPlayerInfo(Class clazz){

/엔티티 클래스의 모든 속성 가져오기/

Field[] fields = clazz.getFields();

//엔티티 클래스 속성에서 주석을 추출하는 루프

for(Field field:fields){

// 주석 일치

if(field.isAnnotationPresent(PlayerName.class)){

//주석 가져오기

PlayerName name = field.getAnnotation(PlayerName.class);

//주석 사용

System.out. println( "선수 이름: "+name.value());

}else if(field.isAnnotationPresent(PlayerInfor.class)){

//주석 가져오기

PlayerInfor infor = field.getAnnotation(PlayerInfor.class) ;

//주석 사용

System.out.println("팀: "+infor.club()+", 대표 색상: "

+infor.color()+", 번호: "+infor.number ()+", age: "+infor.age());

}

}

}

}

4단계: 처리 클래스의 처리 메서드 호출
public static void main(String[] args ) {

AnnoUtil.getPlayerInfo(FootballPlayer.class);

}

출력 결과는 다음과 같습니다.

선수 이름: Rooney

팀: 맨체스터 유나이티드, 대표 색상: 빨간색, 등번호: 10, 나이: 30

위 프로그램에서 엔터티 클래스와 Annotation의 관계는 기사와 노트와 같고, Annotation 처리 클래스는 사람이 노트와 함께 기사를 읽고, 이를 분석하고 처리하여 결과를 출력하는 것과 같다는 것을 알 수 있습니다. 그들은 표현하고 싶어합니다.

첨부 파일:
Java는 특히 다른 주석을 주석 처리하는 네 가지 메타 주석을 제공합니다.

@Retention 메타 주석은 주석 정보를 저장해야 하는 수준(라이프 사이클)을 나타냅니다. 선택적 RetentionPoicy 매개변수는 다음과 같습니다.

RetentionPolicy.SOURCE: Java 소스 파일에 유지되고 컴파일러는 삭제됩니다.

RetentionPolicy.CLASS: 클래스 파일에 유지되지만 VM에 의해 삭제됩니다(기본값)

RetentionPolicy.RUNTIME: 메모리 바이트코드에 있음 , VM은 런타임 시 주석도 유지하므로 반사 메커니즘

@Target 메타 주석을 통해 주석 정보를 읽을 수 있습니다. 기본값은 주석이 사용되는 위치를 나타내는 모든 요소입니다. 사용 가능한 ElementType 매개변수에는

ElementType.CONSTRUCTOR: 생성자 선언

ElementType.FIELD: 멤버 변수, 객체, 속성(enum 인스턴스 포함)

ElementType.LOCAL_VARIABLE: 지역 변수 선언

ElementType.METHOD: 메서드 선언

ElementType이 포함됩니다. PACKAGE: 패키지 선언

ElementType.PARAMETER: 매개변수 선언

ElementType.TYPE: 클래스, 인터페이스(주석 유형 포함) 또는 열거형 선언

@Documented는 JavaDoc의 주석을 포함합니다

@Inheried를 사용하면 하위 클래스가 상위 주석에서 상속받을 수 있습니다. 클래스 [1]: /img/bVbekSZ

2018년 최신 0 기반 입문 및 고급 튜토리얼 세트를 편집했습니다. Java 학습 qun: 678-241-563을 추가하여 얻을 수 있습니다. 개발 도구 및 설치 패키지, 시스템 학습 로드맵도 제공됩니다.

관련 기사:

Java에서 가장 일반적으로 사용되는 주석 요약

Java 주석 튜토리얼 및 사용자 정의 주석

관련 동영상:

Java 주석의 종합 분석

위 내용은 Java에서 일반적으로 사용되는 주석을 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿