java
이 자습서에서는 주석이 무엇인지, 다양한 Java 주석 및 예제를 통해 주석을 사용하는 방법을 배웁니다.
Java 주석은 프로그램 소스 코드에 대한 메타데이터(데이터에 대한 데이터)입니다.
프로그램에 대한 추가 정보를 컴파일러에 제공하지만 프로그램 자체의 일부는 아닙니다. 이러한 주석은 컴파일된 프로그램의 실행에 영향을 미치지 않습니다.
주석은 @
으로 시작합니다. . 구문은 다음과 같습니다.
@AnnotationName<시간>
@Override
의 예를 들어보겠습니다. 주석.
@Override
주석은 이 주석으로 표시된 메소드가 동일한 메소드 이름, 반환 유형 및 매개변수 목록을 가진 수퍼클래스의 메소드를 재정의함을 지정합니다.
@Override
을 반드시 사용해야 하는 것은 아닙니다. 메서드를 재정의할 때. 그러나 그것을 사용하면 메서드를 재정의하는 동안 잘못된 매개 변수 유형과 같은 문제가 있는 경우 컴파일러에서 오류가 발생합니다.
class Animal {
public void displayInfo() {
System.out.println("I am an animal.");
}
}
class Dog extends Animal {
@Override
public void displayInfo() {
System.out.println("I am a dog.");
}
}
class Main {
public static void main(String[] args) {
Dog d1 = new Dog();
d1.displayInfo();
}
}
출력
I am a dog.
이 예에서 메소드 displayInfo()
두 슈퍼클래스 Animal 모두에 존재합니다. 및 하위 클래스 개 . 이 메소드가 호출되면 상위 클래스의 메소드 대신 하위 클래스의 메소드가 호출됩니다.
주석에는 요소(구성원/속성/매개변수)도 포함될 수 있습니다.
마커 주석에는 멤버/요소가 포함되어 있지 않습니다. 선언을 표시하는 데만 사용됩니다.
구문은 다음과 같습니다.
@AnnotationName()
이러한 주석에는 요소가 포함되어 있지 않으므로 괄호를 제외할 수 있습니다. 예를 들어,
@Override<시간>
단일 요소 주석에는 하나의 요소만 포함됩니다.
구문은 다음과 같습니다.
@AnnotationName(elementName = "elementValue")
요소가 하나만 있는 경우 해당 요소의 이름을 value로 지정하는 것이 관례입니다. .
@AnnotationName(value = "elementValue")
이 경우 요소 이름도 제외할 수 있습니다. 요소 이름은 값이 됩니다. 기본적으로.
@AnnotationName("elementValue")<시간>
이러한 주석에는 쉼표로 구분된 여러 요소가 포함되어 있습니다.
구문은 다음과 같습니다.
@AnnotationName(element1 = "value1", element2 = "value2")<시간>
모든 선언은 해당 선언 위에 배치하여 주석으로 표시할 수 있습니다. Java 8부터는 주석을 유형 앞에 배치할 수도 있습니다.
위에서 언급했듯이 Java 주석은 클래스, 메소드, 인터페이스, 필드 및 기타 프로그램 요소 선언 위에 배치될 수 있습니다.
import java.util.*;
class Main {
@SuppressWarnings("unchecked")
static void wordsList() {
ArrayList wordList = new ArrayList<>();
// This causes an unchecked warning
wordList.add("programiz");
System.out.println("Word list => " + wordList);
}
public static void main(String args[]) {
wordsList();
}
}
출력
Word list => [programiz]
위의 프로그램이 @SuppressWarnings("unchecked")
을 사용하지 않고 컴파일된 경우 주석, 컴파일러는 여전히 프로그램을 컴파일하지만 다음과 같은 경고를 표시합니다.
Main.java uses unchecked or unsafe operations. Word list => [programiz]
경고를 받고 있습니다
Main.java uses unchecked or unsafe operations
다음 진술 때문입니다.
ArrayList wordList = new ArrayList<>();
이는 배열 목록의 일반 유형을 정의하지 않았기 때문입니다. 꺾쇠 괄호 <>
안에 제네릭을 지정하여 이 경고를 수정할 수 있습니다. .
ArrayList<String> wordList = new ArrayList<>();<시간>
Java 8 이전에는 주석을 선언에만 적용할 수 있었습니다. 이제 유형 주석도 사용할 수 있습니다. 즉, 유형을 사용할 때마다 주석을 배치할 수 있습니다.
생성자 호출
new @Readonly ArrayList<>()
유형 정의
@NonNull String str;
이 선언은 null이 아닌 변수 str을 지정합니다. String
유형 NullPointerException
를 피하기 위해 .
@NonNull List<String> newList;
이 선언은 String
유형의 null이 아닌 목록을 지정합니다. .
List<@NonNull String> newList;
이 선언은 String
유형의 null이 아닌 값 목록을 지정합니다. .
유형 캐스트
newStr = (@NonNull String) str;
조항 확장 및 구현
class Warning extends @Localized Message
throws 절
public String readMethod() throws @Localized IOException
유형 주석을 사용하면 Java 코드를 더 잘 분석하고 더 강력한 유형 검사를 제공할 수 있습니다.
<시간>1. 사전 정의된 주석
@Deprecated
@Override
@SuppressWarnings
@SafeVarargs
@FunctionalInterface
2. 메타 주석
@Retention
@Documented
@Target
@Inherited
@Repeatable
3. 맞춤 특수효과
이러한 주석 유형은 Java 주석 유형 자습서에 자세히 설명되어 있습니다.
<시간>@Deprecated
, @Override
, @SuppressWarnings
이러한 목적으로 사용됩니다.java
자바 ArrayDeque 이 자습서에서는 예제를 통해 ArrayDeque 클래스와 해당 메서드에 대해 알아봅니다. 또한 배열 deque를 사용하여 스택을 구현하는 방법을 배웁니다. 자바에서는 ArrayDeque를 사용할 수 있습니다. 배열을 사용하여 queue 및 deque 데이터 구조를 구현하는 클래스입니다. ArrayDeque에 의해 구현된 인터페이스 ArrayDeque 클래스는 다음 두 인터페이스를 구현합니다. 자바 대기열 인터페이스 자바 데크 인터페이스 ArrayDeque 생성 배열 데크를 생성하려면 jav
자바 ArrayBlockingQueue 이 자습서에서는 예제를 통해 ArrayBlockingQueue 클래스와 해당 메서드에 대해 알아봅니다. ArrayBlockingQueue Java Collections 프레임워크의 클래스는 배열을 사용하여 차단 대기열 구현을 제공합니다. Java BlockingQueue 인터페이스를 구현합니다. ArrayBlockingQueue 생성 배열 차단 대기열을 생성하려면 java.util.concurrent.ArrayBlockingQueue를 가져와야 합니다. 패키지. 패키지를 가져온