수색…


통사론

  • java.xml이 필요합니다.
  • public java.xml이 필요합니다. # 사용을 위해 모듈을 부양 가족에게 공개합니다.
  • 수출 com.example.foo; # 종속물은이 패키지에서 공용 유형을 사용할 수 있습니다.
  • com.example.foo.impl을 com.example.bar로 내 보냅니다. # 모듈에 대한 사용을 제한한다.

비고

모듈 사용은 장려되지만 필수는 아닙니다. 기존 코드가 Java 9에서 계속 작동 할 수 있습니다. 또한 모듈 식 코드로 점진적으로 전환 할 수 있습니다.

모듈화 되지 않은 코드는 컴파일 될 때 이름없는 모듈에 저장 됩니다. 이것은 다른 모든 모듈의 유형을 사용할 수 있지만 exports 선언이있는 패키지에서만 유형을 사용할 수있는 특수 모듈입니다.

이름없는 모듈의 모든 패키지는 자동으로 내보내집니다.

키워드 (예 : module 등)는 모듈 선언 내에서 사용이 제한되지만 다른 곳에서 계속 식별자로 사용할 수 있습니다.

기본 모듈 정의하기

모듈은 module-info.java 라는 파일에 정의되며 모듈 디스크립터로 명명됩니다. 그것은 소스 코드 루트에 위치해야합니다 :

 |-- module-info.java
 |-- com
     |-- example
         |-- foo
             |-- Foo.java
         |-- bar
             |-- Bar.java

다음은 간단한 모듈 설명 자입니다.

module com.example {
    requires java.httpclient;
    exports com.example.foo;
}

모듈 이름은 고유해야하며이를 위해 패키지에서 사용하는 것과 동일한 Reverse-DNS 명명 표기법 을 사용하는 것이 좋습니다.

Java의 기본 클래스를 포함하는 모듈 인 java.base 는 모든 모듈에서 암시 적으로 볼 수 있으므로 포함 할 필요가 없습니다.

requires 선언 모듈의 예에서, 우리가 다른 모듈을 사용할 수 있습니다 java.httpclient 가져옵니다.

모듈은 또한 패키지를 지정할 수 있습니다 exports 때문에 다른 모듈이 볼 수 있습니다.

exports 절에서 선언 된 패키지 com.example.foo 는 다른 모듈에서 볼 수 있습니다. com.example.foo 하위 패키지는 내보낼 수 없으며 자체 export 선언이 필요합니다.

반대로 exports 절에 나열되지 않은 com.example.bar 는 다른 모듈에서 볼 수 없습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow