-
JAVA API 문서 보기 (기준 JDK8)Java 2020. 1. 6. 19:43반응형
API란?
Application Programming Interface
어플리케이션에 선언되어 있는 클래스와 메서드에 대한 상세한 설명이 포함된 문서
JAVA API 문서 작성
소스 내에 클래스 및 메서드를 선언 하기 전 API에 명시되도록 하기 위해 주석을 달아주면 됨
jdk/bin 디렉터리의 javadoc이라는 명령을 실행하면 자동으로 API 문서인 HTML 파일이 생성
- javadoc은 별도로 간단히 포스팅 예정
Java API
HTML로 구성되어 있음
8버전 문서
Package List
Package를 선택할 수 있음. 선택시 선택하는 Package에 해당하는 항목이 Class List에 나타남
알파벳으로 나열되어 있음
Class List
Interfaces, Classes, Enums, Exceptions, Errors, Annotation Types를 선택할 수 있음.
선택시 Main 화면에 선택한 내용이 나타남
Header & Footer
OVERVIEW
전체 패키지에 대한 설명 화면으로 이동
PACKAGE - java.applet, java.awt, javax.swing, org.omg.CORBA~
Package
현재 보고 있는 클래스가 속해있는 패키지의 모든 인터페이스, 클래스, 예외 등의 목록 및 간단한 설명 확인
CLASS
클래스에 대한 상세 설명 화면으로 이동
USE
JDK에 포함된 패키지 및 클래스 중 현재 보고있는 항목(패키지, 클래스 등)을 사용하는 모든 목록 나열
처음 보는 클래스가 어디에 사용되는지 참고하기에 좋음
TREE
지금 보고있는 클래스가 속한 패키지에 있는 모든 클래스들의 상속 관계를 Tree 형태로 제공
DEPRECATED
JDK에 포함되어 있는 deprecated 클래스 또는 메서드의 목록을 제공
INDEX
A ~ Z까지 알파벳을 선택하면, 각 알파벳에 해당하는 클래스, 인터페이스, 메서드, static 변수 등의 색인을 오름차순으로 정렬하여 제공
HELP
API 문서에 대한 설명을 간단하게 제공
Main - Interface, Class(Class, Enum, Exception, Error)
Package & Class / Interface Name
예시) Package Name : java.lang, Class Name : Class String
Class Inheritance Diagram
클래스 상속 다이어그램
예시) java.lang.Object Class 하위의 java.lang.String Class
All Implemented Interfaces
클래스에만 존재, (해당 클래스에서) 구현한 모든 인터페이스의 목록
예시) Throwable 클래스의 All Implemented Interfaces
Direct Known Subclasses
알려진 직속의 하위클래스
예시) Throwable 클래스의 Direct Known Subclasses
All Known Subinterface
인터페이스에만 존재, 알려진 모든 (해당 인터페이스의) 하위 인터페이스
예시) Runnable 인터페이스의 All Known Subinterfaces
All Known Implementing Classes
인터페이스에만 존재, 알려진 모든 (해당 인터페이스를) 구현한 클래스 목록
예시) Runnable 인터페이스의 All Known Implementing Classes
All Implemented interfaces
클래스에만 존재, (해당 클래스에서) 구현한 모든 인터페이스 목록
예시) String 클래스의 All Implemented Interfaces
Class / Interface Declaration
클래스 / 인터페이스 선언 - 제어자 등을 확인할 수 있음
예시) String 클래스의 선언
Class / Interface Description
클래스 / 인터페이스 설명 - 상세한 설명 확인 가능
클래스의 용도, 사용법, 사용 예 등 자유롭게 기술
Since : 해당 클래스가 JDK에 추가된 버전
See Also : 해당 클래스와 관련되어 있는 모든 클래스, 인터페이스, 메서드 등의 링크 제공
Nested Class Summary
내부 클래스 개요
클래스 내에 public하게 선언되어 있는 클래스인 내부 클래스의 목록이 제공 : 직접 호출 가능
- 클릭시 해당 클래스의 상세 설명 API로 이동
예시) Thread 클래스의 Nested Class Summary
Field Summary
필드 개요
public static으로 선언된 상수 필드 개요
예시) String의 Field Summary
Constructor Summary
생성자 개요
생성자에 걸려있는 링크를 클릭시 생성자 상세 설명으로 이동
예시) String의 Constructor Summary 일부
Method Summary
메서드 개요
클래스에 선언되어 있는 public 및 protected 메서드 - 가장 많이 봐야 하는 부분
Modifier and Type :
- Modifier : 해당 메서드에 선언되어 있는 modifier 나열 (단, 전체 public이라면 생략)
- Type : Return Type
- Static 메서드의 경우 static 추가 명시
API 문서 생성시 private 메서드도 보여지게 할 수 있긴 함
예시) String의 Method Summary 일부
Methods inherited from parent
부모로부터 상속받은 메서드
부모 클래스가 여러 개라면 각 클래스 별로 목록을 별도로 제공
예시) String 클래스의 부모 클래스로부터 상속받은 메서드들
Field Detail
필드 상세
상수 필드가 어떤 내용을 제공하는지 상세한 설명
예시) String 클래스의 Field Detail
Constructor Detail
생성자 상세
생성자 사용법, 매개변수에 제공될 값, 리턴 값, throws하는 예외 발생 시기 확인 가능
예시) String 클래스의 Constructor Detail 일부
Method Detail
메서드 상세
예시) String 클래스의 Method Detail 일부
Main - Annotation Type (제공 내용이 적기에 간단한 구조)
Annotation Type Declaration
어노테이션 타입 선언
Annotation Type Description
어노테이션 타입 설명
Required Element Summary
필수 요소 개요
Optional Element Summary
선택 요소 개요
Element Detail
요소 상세
Main - Enum + (Class와 약간 다름)
Enum Declaration
Enum 클래스 선언
Enum Description
Enum 클래스 설명
Enum Constant Summary
Enum 상수 개요
Constant Detail
상수 상세
Deprecated
사전적 의미 : (강력히) 반대하다.
선언 위치 : 생성자, 상수 필드, 메서드
사용하는 경우 : (어떠한 이유로) 사용하지 않아야 할 API인데 호환성을 위해 남겨놓은 경우
사용된 경우 아래와 같이 Note: 2줄이 나타남
C:\jamie>javac DeprecatedClass.java Note: DeprecatedClass.java uses or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. C:\jamie>javac -Xlint:deprecation DeprecatedClass.java DeprecatedClass.java:18 warning: [deprecation] String(byte[], int) in java.lang.String has been deprecated String jamieStr = new String(strBytes, 0); 1 warning
--Xlint:deprecation 옵션을 주는 경우 경고 메시지를 확인할 수 있음
경고의 경우, 실행에는 문제가 없지만 사용자에게 알려주는 역할
반응형'Java' 카테고리의 다른 글
java.lang.Math & StrictMath Class (0) 2020.01.07 java.lang.System Class (0) 2020.01.07 java.lang 기본 자료형 타입 클래스 (0) 2020.01.07 java.lang 패키지 구조 (0) 2020.01.07 String 클래스 (0) 2020.01.06