모듈 두 코드 의 조합입니다. 및 데이터 이름이 있고, 다른 모듈에 대한 종속성을 선언하고, 이 모듈 외부에서 액세스할 수 있는 공개 유형이 포함된 패키지를 내보내고, 사용하는 서비스 또는 제공하는 서비스 구현을 지정합니다. 이들 모두는 module-info.java에 지정되어 있습니다. 모듈의 루트 디렉토리에 포함된 파일입니다.
"내보내기에는 두 가지 유형이 있습니다. " 절은 "module-info.java에서 사용할 수 있습니다. " 파일.
1) 내보내기 <패키지>: 기본적으로 공개 유형 모듈의 는 더 이상 모듈 외부에서 볼 수 없습니다. 주어진 패키지의 공개 유형을 다른 모듈에서 볼 수 있도록 하려면 내보내기 해야 합니다. 이 패키지. 우리는 유형의 단위 수준이 아니라 패키지 수준에 있음을 명심해야 합니다. 그러나 하위 패키지는 내보내지지 않습니다.
다른 모듈이 tp.com.tutorialspoint.model 패키지의 클래스와 인터페이스를 사용하도록 허용해야 합니다. , 우리는 아래와 같이 쓸 수 있습니다:
module com.tutorialspoint.model { exports tp.com.tutorialspoint.model; }
패키지는 하나의 모듈에만 존재할 수 있다는 것을 이해하는 것이 매우 중요합니다. 그렇지 않으면 아래와 같은 오류가 발생합니다.
Error:(1, 1) java: package exists in another module:
2) <패키지>를 <모듈>로 내보내기: 특정 패키지의 가시성을 유한한 모듈 목록으로 줄임으로써 모듈의 보안을 강화할 수 있습니다. 나열된 모듈만 이러한 클래스에 액세스할 수 있습니다.
module com.tutorialspoint.model { exports tp.com.tutorialspoint.model to com.tutorialspoint.gui; }