@Override: 메서드를 제한하려면 상위 클래스 메서드를 재정의합니다. 이 주석은 메서드에만 사용할 수 있습니다.
@Deprecated: 특정 프로그램 요소(클래스, 메서드, 등)은 더 이상 사용되지 않습니다.
@SuppressWarnings: 컴파일러 경고 억제
class father{ public void fly(){} } class son extends father{ @Override public void fly() { super.fly(); } }
@Override는 아들이 플라이 메서드
을 재정의한다는 의미입니다. @Override가 없으면 플라이 메서드는 계속 유지됩니다. rewrite
class father{ public void fly(){} } class son extends father{ public void fly() { super.fly(); } }
@Override 주석으로 작성된 컴파일러는 메서드가 상위 클래스 메서드를 재정의하는지 여부를 확인하고, 그렇다면 컴파일이 통과됩니다. 다시 작성하지 않으면 컴파일 오류가 발생합니다.
@Override는 메소드만 수정할 수 있으며 다른 클래스, 패키지, 속성 등은 수정할 수 없습니다.
//@Override底层代码 @Target(ElementType.METHOD)//ElementType.METHOD说明@Override只能修饰方法 @Retention(RetentionPolicy.SOURCE) public @interface Override { }
public class Deprecatedtext { public static void main(String[] args) { father father1 = new father(); father1.fly(); } } @Deprecated class father{ @Deprecated public void fly(){} }
@Deprecated는 프로그램 요소(클래스, 메소드 등)가 더 이상 사용되지 않음을 의미합니다. 알림은 단어 중간에 대시로 표시됩니다. 사용을 권장하지 않음을 나타냅니다.
//@Deprecated底层代码 @Documented @Retention(RetentionPolicy.RUNTIME) @Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//说明Deprecated能修饰方法,类,包,参数等等 public @interface Deprecated { }
2 @Deprecated의 역할은 이전 버전과 새 버전 간의 호환성 전환에 역할을 할 수 있습니다
@SuppressWarnings("all") class father{ public void fly(){} }
@SuppressWarnings 주석을 사용하여 경고 메시지를 억제할 수 있습니다. {""}억제하려는 경고 메시지를 작성하세요
1과 관련됩니다. 위치를 지정하세요
public class Enumtext { @SuppressWarnings("all")//作用范围在main方法 public static void main(String[] args) { father father1 = new father(); father1.fly(); } } @SuppressWarnings("all")//作用范围在father类 class father{ public void fly(){} }
경고 지정 유형은
all, 모든 경고 억제
boxing, 포장/분해 작업 관련 경고 억제
cast, 강제 변형 작업 관련 경고 억제
dep-ann, 관련 경고 억제 지원 중단 주석
지원 중단, 제거와 관련된 경고
fallthrough, 스위치 문에서 break 생략과 관련된 경고 억제
마지막으로 반환되지 않는 finally 블록과 관련된 경고 억제
숨기기, 숨기는 지역 변수와 관련된 경고 억제 변수
incomplete-switch, 스위치 문(enum case)에서 누락된 항목과 관련된 경고 억제
javadoc, javadoc
nls와 관련된 경고 억제, nls가 아닌 문자열 리터럴과 관련된 경고 억제
null, null 값 분석과 관련된 경고 억제
rawtypes , 원시 유형
resource 사용과 관련된 경고 억제, Closeable 유형
제한 리소스 사용과 관련된 경고 억제, 더 이상 사용되지 않거나 금지된 참조
serial 사용과 관련된 경고 억제, 직렬화 가능 범주에서 누락된 serialVersionUID 필드 억제 관련 경고
static-access, 잘못된 정적 액세스와 관련된 경고를 억제
static-method, 정적으로 선언될 수 있는 메서드와 관련된 경고를 억제
super, 슈퍼 호출을 포함하지 않는 대체 메서드와 관련된 경고를 억제
Synthetic-access, 억제 내부 클래스에 대한 최적화되지 않은 액세스와 관련된 경고
sync-override, 동기화 방법 대체로 인해 누락된 동기화에 대한 경고를 억제합니다.
unchecked, 확인되지 않은 작업과 관련된 경고를 억제합니다.
unqualified-field -access, 자격이 없는 필드 액세스와 관련된 경고를 억제합니다.
used, 사용되지 않는 코드 및 비활성화된 코드와 관련된 경고 억제
Retention은 주석의 범위를 지정하고, SOURCE, CLASS, RUNTIME 세 가지 종류
Target은 주석을 사용할 수 있는 위치를 지정합니다
Documented는 주석이 javadoc에 반영되는지 여부를 지정합니다
Inherited 하위 클래스는 상위 클래스 주석을 상속합니다
RetentionPolicy.SOURCE: 컴파일러가 이를 사용한 후 주석이 직접 삭제됩니다.
RetentionPolicy.CLASS: 컴파일러는 클래스 파일에 주석을 기록하고 JVM은 Java를 실행할 때 주석을 유지하지 않습니다.
RetentionPolicy.PUNTIME: 컴파일러는 클래스 파일에 주석을 기록하고 JVM은 java
@Override 하단 레이어 실행 시 주석 유지(하단 레이어에 진입하기 위한 IDEA의 단축키는 Ctrl+B)
@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE)//表示@Override在编译器使用后,直接丢弃注释 public @interface Override { }
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) // 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述域 3.LOCAL_VARIABLE:用于描述局部变量 4.METHOD:用于描述方法 5.PACKAGE:用于描述包 6.PARAMETER:用于描述参数 7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Deprecated 하단 레이어
@Documented @Retention(RetentionPolicy.RUNTIME) @Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//表示@Documented在这些地方可以写注解 public @interface Deprecated { }
@Deprecated 하단 레이어
@Documented//@Deprecated代码会被保存到生产的文档中 @Retention(RetentionPolicy.RUNTIME) @Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) public @interface Deprecated { }
클래스에서 수정한 Annotation은 상속을 받습니다. , 해당 하위 클래스에는 자동으로 이 주석이 포함됩니다
위 내용은 Java 주석 Annotaton을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!