2017-01-30 7 views
22

Javadoc 도구는 접근성 수정자를 기반으로 문서를 생성합니다. 기본적으로 모든 publicprotected 클래스, 필드 및 메서드를 문서화합니다. 이것은 options을 다음과 같이 변경할 수 있습니다Javadoc은 Java 9에서 모듈의 가시성을 어떻게 처리합니까?

-public
는 공공 클래스와 멤버를 표시합니다.

- 보호
보호 된 공용 클래스 및 멤버 만 표시합니다. 이것이 기본값입니다.

- 패키지
패키지, 보호 및 공용 클래스 및 멤버 만 표시합니다.

-private
모든 클래스와 멤버를 표시합니다.

Java 9는 모듈 개념을 도입하고 Jigsaw 프로젝트는이를 기존 JDK에 적용합니다. public 수정 이제 (exports를 통해) 모듈의 가시성에 따라, 접근성의 다른 수준을 얼마나 (모듈에 대한 협상의 시리즈 3) 마크 라인 홀드에 의한 talk 보여줍니다 : 모든 사람에게

  • 공개
  • 공공하지만 특정 모듈 지금부터 만 모듈

  • 공공 없음 모든 public 멤버가 액세스 할 수있는 경우 동일한 Javadoc 생성 체계를 계속 사용하는 것이 바람직하지 않습니다. "충분한"수준으로 노출 된 회원 만 문서화해야합니다.

    Javadoc 모듈을 인식합니까? 추가 노출 레이어를 처리하기 위해 위의 명령 옵션 외에 명령 옵션이 있습니까? 특정 모듈에 노출되는 공공 회원의 경우,

    public <module1, module2> static void getDefaultThing() 
    

    같이,이 Javadoc의 목록을합니까?

  • +4

    흥미로운 질문, 특히 javadoc의 목적은 모두 내부적으로 (예 : 라이브러리/모듈의 개발자)뿐만 아니라 공개적으로 (예 : 라이브러리/모듈의 사용자) 흥미로운 질문 일 수 있습니다. –

    +0

    @MarkRotteveel 예. 라이브러리/모듈의 사용자만을 겨냥했다면 * 사용자의 모듈이 라이브러리 컴파일 시간 동안 알려지지 않았기 때문에 "모든 사람들을위한 공개"만 표시됩니다. 그것은 '보호 된'것이 무엇을 의미하는지 확신 할 수 없다. – user1803551

    +1

    javadoc은 * some * module documentation을 가지고있는 것으로 보입니다. 'javadoc --help | grep 모듈'은 몇 가지 옵션이 있음을 보여줍니다. 가능한 이러한 명령에 대한 나의 이해에서, 여하튼 두 가지 유형의 문서 - 일반적인 모듈 및/또는 모듈이 있습니다. 나는 완전히 틀릴 수도 있습니다 ... 정말로 좋은 질문입니다. – Eugene

    답변

    13

    javadoc에는 모듈, 패키지, 유형 및 멤버 수준에서 문서화되는 항목을 선택할 수있는 새로운 옵션이 있습니다. JDK 9의 EA 버전을 사용하여 새로운 --module, --show-* 옵션 및 --expand-requires 옵션을 찾습니다. 자신의 명령 줄 도움말은 아직 업데이트해야하지만

    기존 옵션 -public-protected, -package, -private 옵션은 새로운 --show-* 옵션의 관점에서 재정의되고있다.

    핸디 - 멋쟁이 변환 테이블은 다음과 같습니다 일반적으로

    -public 
         --show-module-contents api --show-packages exported --show-types public --show-members public 
    
    -protected (the long-standing default) 
         --show-module-contents api --show-packages exported --show-types protected --show-members protected 
    
    -package 
         --show-module-contents all --show-packages all --show-types package --show-members package 
    
    -private 
         --show-module-contents all --show-packages all --show-types private --show-members private 
    

    , API를 사용자를위한 문서를 생성하는 기본을 계속 사용하고, 어쩌면 -package 또는 -private가의 개발자를위한 문서를 생성하는 데 사용 API. 미세 조정을 위해서는 기본 --show-* 옵션을 사용하십시오.

    +0

    출력은 어떻게 바뀌나요? Javadoc에서 여러 수준의 '공개'가 표시됩니까? – user1803551

    관련 문제