대학에서 90 년대 후반에 JBuilder를 사용한 이후로 Java를 다루지 않았으므로 이번 주에 작은 Java 프로젝트를 작업하고있는 Intellij IDEA를 IDE로 사용하여 어느 정도 속도를 거두었습니다. , 정기적 인 .Net 개발에서 속도의 변화를 위해.
인터페이스와 @interfaces를 추가 할 수 있고 @interface가 무엇이고 일반 인터페이스와 어떻게 다릅니 까?
public interface Test {
}
vs.
public @interface Test {
}
약간의 검색을 수행했지만 @interface를 참조하는 유용한 정보를 많이 찾을 수 없습니다.
답변
@의 기호는 주석 형 정의를 의미한다.
즉, 그것은 것입니다 하지 정말 인터페이스가 아니라 새로운 주석 형은 – 같은 기능 수정으로 사용할 수 @Override .
주제에 대한 이 javadocs 항목 을 참조하십시오 .
답변
상호 작용:
일반적으로 인터페이스는 기본 구현 세부 사항을 노출하지 않고 계약을 노출합니다. 객체 지향 프로그래밍에서 인터페이스는 동작을 노출하지만 논리는 포함하지 않는 추상 유형을 정의합니다. 구현은 인터페이스를 구현하는 클래스 또는 유형으로 정의됩니다.
@interface : (주석 유형)
주석이 많은 아래 예제를 보자.
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
이 대신 주석 유형을 선언 할 수 있습니다
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}
그러면 다음과 같이 클래스에 주석을 달 수 있습니다.
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}
추신 :
많은 주석이 코드의 주석을 대체합니다.
참조 : http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html
답변
interface
키워드는 자바에서 기존의 인터페이스 클래스를 선언하고 있음을 나타냅니다. 키워드는 새로운 주석 형을 선언하는 데 사용됩니다. @interface
구문에 대한 설명은 주석에 대한 docs.oracle 자습서 를 참조하십시오 . 의미 가 무엇인지 자세히 알고 싶다면 JLS를
참조하십시오 .@interface
답변
interface:
그것을 구현하는 클래스의 계약을 정의
@interface:
주석 계약을 정의합니다
답변
Java 프로그래밍 언어의 인터페이스 는 클래스가 구현해야하는 동작을 지정하는 데 사용되는 추상 유형입니다. 프로토콜과 비슷합니다. 인터페이스는 interface 키워드를 사용하여 선언됩니다
@interface
는 고유 한 (사용자 정의) Java 주석을 작성하는 데 사용됩니다. 주석은 Java 클래스 또는 인터페이스와 마찬가지로 자체 파일에 정의됩니다. 다음은 사용자 정의 Java 어노테이션 예제입니다.
@interface MyAnnotation {
String value();
String name();
int age();
String[] newNames();
}
이 예에서는 네 가지 요소가있는 MyAnnotation이라는 주석을 정의합니다. @interface 키워드를 주목하십시오. 이것은 Java 컴파일러에게 이것이 Java 어노테이션 정의임을 알립니다.
각 요소는 인터페이스의 메소드 정의와 유사하게 정의됩니다. 데이터 유형과 이름이 있습니다. 모든 기본 데이터 유형을 요소 데이터 유형으로 사용할 수 있습니다. 배열을 데이터 유형으로 사용할 수도 있습니다. 복잡한 개체는 데이터 형식으로 사용할 수 없습니다.
위의 주석을 사용하려면 다음과 같은 코드를 사용할 수 있습니다.
@MyAnnotation(
value="123",
name="Jakob",
age=37,
newNames={"Jenkov", "Peterson"}
)
public class MyClass {
}