Java에서는 주석이 Java 5에 도입되며 Java 코드의 메타 정보를 설명하는 데 사용됩니다. 일반적으로 주석은 코드 실행에 직접적인 영향을 미치지 않지만 일부 주석은 코드 실행에 영향을 줄 수 있습니다.
주석으로 할 수있는 일
Java의 주석은 일반적으로 다음과 같은 역할을합니다
~에
주석 기초
간단한 Java 주석은 @entity와 유사합니다. 여기서 @는 컴파일러에게 이것이 주석이라고 말하는 것을 의미합니다. 엔티티는 주석의 이름입니다. 일반적으로 파일에서 쓰기 방법은 다음과 같습니다.
public @interface 엔티티 {
}
주석 요소
Java 주석은 요소를 사용하여 일부 값을 설정할 수 있으며 주석의 요소는 속성 또는 매개 변수와 유사합니다. 주석 포함 요소를 정의하기위한 샘플 코드
public @interface 엔티티 {
문자열 tableName ();
}
주석 포함 요소를 사용한 샘플 코드
@Entity (tableName = "차량")
위의 주석의 요소 이름은 표정 이름이고 값 세트는 차량입니다. 요소가없는 주석에는 괄호가 필요하지 않습니다.
주석에 여러 요소가 포함 된 경우 사용 방법은 다음과 같습니다.
@Entity (tableName = "Vehicles", PrimaryKey = "id")
주석에 요소가 하나만 있으면 보통 이렇게 씁니다.
@InsertNew (value = "yes")
그러나이 경우, 요소 이름이 값인 경우에만, 우리는 그것을 약식 할 수 있습니다. 즉, 요소 이름 값을 채울 필요가 없으며 효과는 다음과 같습니다.
@InsertNew ( "예")
주석 사용
주석은 코드에서 이러한 요소를 수정하는 데 사용될 수 있습니다.
사용의 완전한 예는 다음과 같습니다
@EntityPublic 클래스 차량 {@Persistent Protected String vehiclename = null; @getter public string getvehiclename () {return this.vehiclename; } public void setvehiclename (@optional vehiclename) {this.vehiclename = vehiclename; } 공개 목록 addVehiclenametolist (목록 이름) {@optional list localnames = names; if (localnames == null) {localNames = new ArrayList (); } localnames.add (getvehiclename ()); 로컬 이름을 반환합니다. }}내장 Java 주석
Java에는 컴파일러에 대한 지침을 제공하는 데 사용되는 세 가지 내장 주석이 있습니다. 그들은입니다
@deprecated
클래스, 방법 및 속성을 표시하는 데 사용할 수 있습니다.
위의 세 가지 요소가 더 이상 사용되지 않으면 @deprecated 주석을 사용하십시오. 코드가 @DepRecated 주석의 클래스, 메소드 또는 속성을 사용하는 경우 컴파일러가 경고합니다.
@deprecated는 다음과 같이 사용하기가 매우 간단합니다. 이상 사용되지 않은 클래스의 주석.
@DepRecatedPublic Class MyComponent {}@DepRecated 주석을 사용하면 해당 @DepRecated Javadoc 기호를 사용 하여이 클래스, 메소드 또는 속성이 사용되지 않는 이유와 대안이 무엇인지 설명하는 것이 좋습니다.
@deprecated/** @deprecated이 클래스는 버그로 가득합니다. 대신 myNewComponent를 사용하십시오.*/public class myComponent {}@보수
@override 주석은 부모 클래스를 다시 작성하는 방법을 수정하는 데 사용됩니다. 상위 클래스를 무시하지 않는 메소드 가이 주석을 사용하면 컴파일러에 오류가 발생합니다.
실제로, @overide는 하위 클래스에서 상위 클래스 또는 인터페이스의 메소드를 무시할 필요가 없습니다. 그러나이 주석을 사용하는 것이 좋습니다. 경우에 따라 상위 클래스 메소드의 이름을 수정한다고 가정하면 이전에 다시 작성한 서브 클래스 메소드는 더 이상 다시 작성되지 않습니다. @overide가 없으면이 서브 클래스의 방법을 알 수 없습니다. 이 주석 수정을 통해 컴파일러는이 정보를 제출합니다.
재정의 주석 사용의 예
public class mysuperclass {public void dothething () {system.out.println ( "Do the Thing"); }} public class mysubclass 확장 mysuperclass {@override public void dothething () {system.out.println ( "다르게"); }}@suppresswarnings
@SuppressWarnings는 경고 메시지를 생성하는 것을 억제하는 데 사용됩니다.
수정할 수있는 요소는 클래스, 메소드, 메소드 매개 변수, 속성 및 로컬 변수입니다.
사용 시나리오 : 메소드가 더 이상 사용되지 않은 메소드를 호출하거나 안전하지 않은 유형 변환을 수행하면 컴파일러가 경고를 생성합니다. 이 방법에 추가 할 수 있습니다
컴파일러 생성 경고를 억제하기위한 @SuppressWarnings 주석.
참고 : @SuppressWarnings 주석을 사용하고 근접의 원리를 채택하십시오. 예를 들어, 메소드에 경고가있는 경우 메소드가있는 클래스에 주석을 달지 않고 @SuppressWarnings를 사용 하여이 메소드에 주석을 달아야합니다. 둘 다 컴파일러가 경고를 생성하는 것을 억제 할 수 있지만, 범위가 작을수록 범위가 더 크기 때문에이 클래스에서 다른 방법으로부터 경고 정보를 발견하는 데 도움이되지 않기 때문에 더 좋습니다.
사용의 예
@suppresswarningspublic void methodwithWarning () {}나만의 주석을 만듭니다
Java에서는 자체 주석, 주석 및 클래스를 만들 수 있으며 인터페이스 파일은 자체 파일에 정의됩니다. 다음과 같이
@Interface myAnnotation {String value (); 문자열 이름 (); int age (); 문자열 [] newNames ();}위의 코드는 4 개의 요소가있는 myAnnotation이라는 주석을 정의합니다. 다시, 키워드 @interface는 Java 컴파일러에게 이것이 주석이라고 알려주는 데 사용됩니다.
자세히 살펴보면 주석 요소의 정의가 인터페이스 메소드와 매우 유사하다는 것을 알게됩니다. 이 요소에는 유형과 이름이 있습니다. 이러한 유형은 될 수 있습니다
다음은 앱 사용자 정의 주석입니다
@MyAnnotation (value = "123", name = "jakob", age = 37, newnames = { "jenkov", "peterson"}) public class myclass {}모든 주석 요소에 대한 값을 설정해야하며 아무도 누락 할 수 없습니다.
주석 요소 기본값
주석의 요소의 경우 방법을 사용하여 기본값을 설정할 수 있습니다.
@Interface myAnnotation {String value () default ""; 문자열 이름 (); int age (); 문자열 [] newNames ();}위 코드에서 값 요소의 기본값을 빈 문자열로 설정합니다. 우리가 그것을 사용할 때, 우리는 값을 설정할 수 없습니다. 즉, 값이 빈 문자열의 기본값을 사용하도록하십시오. 샘플 코드를 사용하십시오
@MyAnnotation (name = "jakob", age = 37, newnames = { "jenkov", "peterson"}) 공개 클래스 myclass {}@보유
@retention은 주석을 수정하는 데 사용되는 주석입니다. 이 주석을 사용하여 할 수 있습니다.
런타임에 클래스 파일의 주석이 표시되는지 여부를 제어하기 위해 주석이 클래스 파일에 기록되어 있는지 제어
제어는 간단합니다. 다음 세 가지 전략 중 하나를 사용하십시오.
rendentionpolicy.source는 주석이 소스 코드에만 존재하고, 클래스 파일이 존재하지 않으며, 런타임 중에 볼 수 없음을 나타냅니다. 일반적인 주석은 @override, @suppresswarnings입니다.
rendentionpolicy.class 기본 주석 보존 정책입니다. 이 전략에 따라 주석은 .class 파일로 존재하지만 런타임에는 액세스 할 수 없습니다. 일반적 으로이 주석 전략은 일부 바이트 코드 수준에서 작동하는 데 사용됩니다.
이 정책에 따라 런타임에 runtime.runtime에 액세스 할 수 있습니다. 종종 우리는 반사와 함께 무언가를합니다.
@retention의 사용 예
import java.lang.annotation.retention; import java.lang.annotation.retentionpolicy; @retention (retentionpolicy.runtime) @interface myAnnotation {String value () default "";}@목표
@Target 주석을 사용하여 사용자 정의 주석으로 수정할 수있는 Java 요소를 설정할 수 있습니다. 간단한 예
import java.lang.annotation.elementtype; import java.lang.annotation.target; @target ({elementtype.method}) public @interface myAnnotation {String value ();}위의 코드는 MyAnnotation 주석이 메소드 만 수정할 수 있음을 보여줍니다.
@target은 다음과 같이 매개 변수 값을 선택할 수 있습니다
@Inherited
클래스와 하위 클래스에 주석이 포함되도록하려면 @Inherited를 사용 하여이 주석을 수정할 수 있습니다.
java.lang.annotation.inherited@inheritedpublic @interface myAnnotation {} 12@myAnnotationPublic Class MySuperClass {...} 1public class mysubclass 확장 mysuperclass {...}위의 코드의 일반적인 의미는 다음과 같습니다
1. @inherited를 사용하여 주석을 수정하십시오
2. myAnnotation을 사용한 MySuperClass의 주석
3. 클래스 MySubclass는 MySuperClass에서 상속됩니다
위의 단계를 통해 MySubclass에는 MyAnnotation 주석이 있습니다.
이것들은 Java의 주석에 대한 몇 가지 기본 개념입니다.
위는 Java의 주석 분류입니다. 우리는 향후 관련 정보를 계속 추가 할 것입니다. 이 사이트를 지원 해주셔서 감사합니다!