Java의 주석 기호 @

Bishal Awasthi 2023년10월12일
  1. Java의 @Override 주석
  2. Java의 @SuppressWarnings 주석
  3. Java의 @Deprecated 주석
Java의 주석 기호 @

이 기사에서는 Java에서 주석이라고 하는 @ 기호를 소개합니다. @Override, @SuppressWarnings@Deprecated와 같은 기본 제공 Java 주석에 중점을 둡니다.

Java의 @Override 주석

Annotation은 Java에서 클래스, 인터페이스 및 메소드에 첨부된 추가 정보를 나타내는 방법입니다. Java 컴파일러 및 JVM은 주석을 사용하여 제공된 정보를 사용합니다. 주석은 @ 기호로 시작합니다. @Override 주석은 자식 클래스 메서드가 부모 클래스 메서드를 재정의하도록 합니다. 값이나 요소가 없기 때문에 마커 주석입니다. @Override 주석을 사용할 때 컴파일러는 오류를 생성하고 메서드를 재정의하는 동안 실수가 있으면 경고합니다. 검사할 가능성이 있는 실수는 철자 오류와 인수 및 반환 유형의 오류입니다. 상속을 생성하여 @Override 주석의 사용을 시연할 수 있습니다. 첫째, 우리는 주석을 사용하지 않을 것이지만, 나중에 @Override가 어떻게 작동하는지 보여주기 위해 사용할 것입니다.

예를 들어 Parent 클래스를 만들고 void 반환 유형으로 message() 메서드를 작성합니다. 메소드 내에서 일부 메시지를 인쇄하십시오. 마찬가지로 다른 클래스 Child를 만들고 Parent 클래스를 확장합니다. void 유형으로 동일한 메소드 message를 만들고 그 안에 메시지를 작성합니다. 메소드 바로 앞에 @Override 주석을 작성합니다. 그런 다음 메인 클래스 내부에서 각 클래스의 객체를 생성하고 message() 메소드를 호출합니다.

여기서 하위 클래스는 상위 클래스를 상속하며 각 클래스의 각 메서드는 문제 없이 호출됩니다.

예제 코드:

class Annotation {
  public static void main(String[] args) {
    new Child().message();
    new Parent().message();
  }
}

class Parent {
  void message() {
    System.out.println("Invoked from the Parent class");
  }
}

class Child extends Parent {
  @Override
  void message() {
    System.out.println("Invoked from the Child class");
  }
}

출력:

Invoked from the Child class
Invoked from the Parent class

Child 클래스의 message() 메소드를 message()로 수정합니다. 그런 다음 프로그램을 실행합니다. 다음 출력을 보여줍니다.

출력:

Annotation.java:18: error: method does not override or implement a method from a supertype

여기서는 메서드 이름을 변경했습니다. 때때로 프로그래머는 재정의하는 동안 이러한 유형의 실수를 범할 수 있습니다. 따라서 @Override 주석은 메서드를 재정의하는 동안 오류를 보장하고 프로그래머에게 경고합니다.

Java의 @SuppressWarnings 주석

@SuppressWarnings 주석은 컴파일러에게 지정된 코드 부분에 대한 오류를 억제하거나 무시하도록 지시합니다. 유형, 필드, 메소드, 매개변수, 생성자 및 지역 변수에 대한 주석을 사용할 수 있습니다. 주석의 괄호 사이에 unchecked 값을 @SuppressWarnings("unchecked")로 지정하여 오류를 억제할 수 있습니다. 클래스 전에 주석을 사용하면 클래스 내부의 모든 오류가 억제됩니다. 그리고 클래스 내부의 어떤 메소드보다 먼저 사용하면 해당 특정 클래스의 오류만 억제합니다.

예를 들어 util 패키지를 가져오고 Annotation이라는 클래스를 만듭니다. 메인 메소드 앞에 @SuppressWarnings("unchecked")를 작성하십시오. 기본 메서드 내에서 ArrayList()의 인스턴스를 만들고 fruits 변수에 할당합니다. 그런 다음 add() 메서드를 사용하여 applemango 값을 추가합니다. 마지막으로 fruits 변수를 인쇄합니다.

아래 예에서는 util 패키지에서 모든 것을 가져왔습니다. 이후에 사용할 ArrayList 클래스를 가져옵니다. 위의 코드는 오류가 있지만 성공적으로 실행됩니다. 제네릭이 아닌 컬렉션 ArrayList를 사용했습니다. <> 기호 안에 유형을 지정하지 않았습니다. 따라서 코드에 오류가 있습니다. 그러나 @SuppressWarnings 주석을 사용하여 오류를 억제했기 때문에 실행됩니다.

예제 코드:

import java.util.*;
class Annotation {
  @SuppressWarnings("unchecked")
  public static void main(String args[]) {
    ArrayList fruits = new ArrayList();
    fruits.add("apple");
    fruits.add("mango");
    System.out.println(fruits);
  }
}

출력:

[apple, mango]

다음 코드에 주석을 사용하지 않으면 컴파일러는 다음 오류를 표시합니다.

출력:

Note: Annotation.java uses unchecked or unsafe operations.

Java의 @Deprecated 주석

@Deprecated 주석은 지정된 코드를 사용되지 않는 코드로 표시하는 데 사용됩니다. 컴파일러는 주석을 사용할 때 사용 중단 경고를 표시합니다. @Deprecated 주석을 사용하여 유형, 메서드, 필드 및 생성자에 주석을 달 수 있습니다.

예를 들어 Car 클래스를 만들고 color, lengthwidth 매개변수를 사용하여 생성자를 만듭니다. 생성자 앞에 @Deprecated 주석을 사용하십시오. 몸을 비워 두십시오. 다른 생성자를 만들고 그 안에 문자열 매개변수 name을 작성하십시오. 또 다른 클래스인 Annotation을 만들고 메인 메소드 내에서 이 두 생성자를 호출합니다.

아래 예에서는 첫 번째 생성자보다 먼저 @Deprecated 주석을 사용했습니다. 이를 통해 컴파일러는 생성자가 더 이상 사용되지 않는다는 경고를 생성할 수 있습니다. 이런 식으로 주석을 사용하여 코드에서 더 이상 사용되지 않는 항목을 지정할 수 있습니다. 필요한 경우 이전 버전으로 롤백하는 데 사용할 수 있으므로 사용되지 않는 코드를 제거하는 것은 권장되지 않습니다. 이러한 경우에는 새로운 대안을 사용하는 것이 좋습니다.

예제 코드:

class Annotation {
  public static void main(String args[]) {
    new Car("red", 550, 300);
    new Car("Lambo");
  }
}
class Car {
  @Deprecated
  Car(String color, int length, int width) {}
  Car(String name) {}
}

출력:

Note: Annotation.java uses or overrides a deprecated API.

관련 문장 - Java Annotation