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()
메서드를 사용하여 apple
및 mango
값을 추가합니다. 마지막으로 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
, length
및 width
매개변수를 사용하여 생성자를 만듭니다. 생성자 앞에 @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.