Java 의견의 개요 :
1. 주석은 컴파일러가 보는 것입니다.
2. 세 가지 기본 주석 :
@override는 컴파일러에게 메소드를 재정의한다고 말합니다.
@deprecated 메소드가 구식이라고 컴파일러에게 알려줍니다
@suppresswarnings ( "확인되지 않은")는 경고하지 않습니다
= (value = { "unchecked"})
3. 주석이 기존 구성 파일을 대체하는 데 사용될 수 있습니다.
4. JDK5에서 시작하여 Java는 메타 데이터 (메타 데이터), 즉 주석에 대한 지원을 추가했습니다.
맞춤형 주석 및 반사 주석
사용자 정의 주석 :
1. 새 주석 만들기 : (인터페이스 정의보다 @ 기호 하나만 더).
코드 사본은 다음과 같습니다.
public @interface myAnnotation {
//재산
문자열 누가 ();
int age ();
문자열 젠더 ();
}
2. 기본값으로 주석을 설정하십시오
코드 사본은 다음과 같습니다.
public @interface youannotation {
문자열 누가 () 기본 "Tom";
int age () 기본 0;
문자열 gender () 기본 "여성";
}
3. 배열 상황
코드 사본은 다음과 같습니다.
public @interface theannotation {
문자열 [] value (); //
}
메타 오노 화 / 메타 오노 화
주석을 수정하는 데 사용됩니다. (@override의 소스 코드를 볼 수 있습니다)
@retentional Annotation 정책, 주석이 유지 될 수있는 도메인을 지정하는 데 사용됩니다.
resentpolicy.class
바이트 코드 레벨이 있지만 런 레벨에서는 보이지 않습니다 (기본값)
rendentpolicy.runtime
세 레벨 모두가 보이며 런타임 중에 반영 될 수 있습니다.
rendentionpolicy.source는 소스 코드 수준에서만 사용할 수 있으며 바이트 코드 수준에서 볼 수 없습니다.
@target 사용중인 주석의 범위를 지정합니다
@documented 문서에 쓸 때 javadoc 명령을 사용하여 HTML 문서에 쓸 때
@Inherited 상속 가능성,이 클래스를 상속하는 서브 클래스는 여전히 부모 클래스의 특성을 주석으로 가지고 있습니다.
데이터베이스 작업에 대한 연결을 수행하기위한 Ex. Reflection Annotation :
정의 주석은 다음과 같습니다.
코드 사본은 다음과 같습니다.
// 런타임에 주석이 반영됩니다
@retention (retentionpolicy.runtime)
public @interface dbinfo {
문자열 드라이버 () 기본 "com.mysql.jdbc.driver";
String URL () 기본 "url = jdbc : mysql : // localhost : 3306/Academic";
문자열 비밀번호 () 기본 "1234";
문자열 username () 기본 "루트";
}
반사 주입 :
코드 사본은 다음과 같습니다.
@dbinfo
public static connection getConnection ()은 예외 {
//이 클래스의 바이트 코드를 가져옵니다
클래스 Clazz = demo2.class;
//이 클래스에서 getConnection ()이라는 공개 메소드를 가져옵니다
// 매개 변수 1 : 메소드 이름
// 매개 변수 2 : 메소드 유형 매개 변수에 해당하는 바이트 코드
메소드 메소드 = clazz.getMethod ( "getConnection", null);
//이 메소드를 통해 메소드에 정의 된 주석을 얻으십시오.
dbinfo dbinfo = method.getAnnotation (dbinfo.class);
문자열 드라이버 = dbinfo.driver ();
문자열 url = dbinfo.url ();
문자열 user = dbinfo.username ();
문자열 암호 = dbinfo.password ();
class.forname (드라이버);
return drivermanager.getConnection (URL, 사용자, 암호);
}