자바독 치트 시트(Javadoc cheat sheet)
자바독으로 문서화할 때 많이 사용하는 구문.
Javadoc
Java 소스에 문서화를 하는 방법으로 클래스나 메소드에 주석으로 기술한 내용을 javadoc 명령어나 또는 이를 이용한 빌드 툴(maven 의 site phrase등)을 사용하여 문서화할 수 있다. 문서화할 주석을 달 경우
/** 두 개로 시작하고 */ 로 끝나야 한다. 특별한 키워드는 @keyword 형식으로 작성한다.
@author
소스의 저자를 의미하며 이클립스에서는 기본 값으로 윈도 로그인 id 를 사용한다. 버전 관리 시스템에 변경 이력이 남아있고 한 소스를 여럿이 고치는 경우가 많으므로 회사에서는 사용하지 않는다.
스프링 프레임워크의 경우 소스마다 Juergen Hoeller 라는 분 이름이 있는 것을 볼 수 있다.
/**
* Converts an array to a Collection.
*
* <p>First, creates a new Collection of the requested target type.
* Then adds each array element to the target collection.
* Will perform an element conversion from the source component type
* to the collection's parameterized type if necessary.
*
* @author Keith Donald
* @author Juergen Hoeller
* @since 3.0
*/
final class ArrayToCollectionConverter implements ConditionalGenericConverter {
{@link}
내/외부 클래스나 메소드등을 연결할 때 사용하며 다른 키워드(@deprecated 등)와 같이 사용해야 하는 경우 유용. 사용 예는 바로 아래 예제 참고
@deprecated
오래되서 더 이상 사용을 권장하는 않는 클래스, 메소드, 인터페이스에 사용하며 @Deprecated 애노테이션과 같이 사용하면 더욱 유용함.
/**
* Does some thing in old style.
*
* @deprecated use {@link #newMethod()} instead.
*/
public void oldMethod() {
}
public void newMethod() {
}
@see
다른 클래스나 메소드를 참고할 경우 사용.
@see className
클래스 이름 연결
/**
* 클래스 설명
*
@see org.springframework.core.convert.ConverterNotFoundException
*/
@see #method - 클래스내 메소드나 변수 연결
- #method : 현재 클래스의 메소드나 변수 연결
- MyClass#method : MyClass 클래스의 메소드나 변수 연결
- my.package.MyClass#method : my.package 에 있는 MyClass 클래스의 메소드나 변수 연결
/**
* @see #priMethod()
*/
public void method2() {
}
private void priMethod() {
}
여러 개의 메소드가 오버로딩 되어 있을 경우 파라미터를 같이 기술
/**
* @see #priMethod(int, String)
*/
public void method2() {
}
private void priMethod() {
}
private void priMethod(int i, String s) {
}
외부 URL 링크
HTML 의 a href 태그를 사용하여 외부 URL 을 링크
/**
* @see <a href="http://google.com">http://google.com</a>
*/
작성된 외부 링크는 다음과 같이 표시됨.
See Also:
@since
클래스나 메소드나 언제부터 있었는지 여부를 지정. API 로 제공하는 경우 API 사용자가 어느 버전의 라이브러리에서 이 기능를 제공하는지 알아야 의존성을 제대로 설정할 수 있으므로 중요한 키워드임.
/**
* Thrown when a suitable converter could not be found in a conversion service.
*
* @author Keith Donald
* @since 3.0
*/
@SuppressWarnings("serial")
public final class ConverterNotFoundException extends ConversionException {
@param
파라미터 이름과 용도 기술
@return
description (return type and range of values)
@throws
exception-class descriptiom
{@code} Javadoc 에 예제 코드 작성
설명에 예제 코드를 첨부할 경우 {@code} 태그를 사용하면 되지만 이경우 개행이 되지 않으므로 HTML 의 <pre> 태그를 같이 사용해야 함.
/**
* 클래스 설명: 예제
*
* <pre>
* {@code
* Listener pl = new PieListener(kitchen);
* int n = pl.forty();
* }
* </pre>
*/
public class JavadocTest {