2017-03-13 11 views
8

Java言語をよりよく理解するために、Java 8仕様を読んでいます。インポート宣言

具体的には、第7章パッケージ

import PackageOrTypeName . * ; 

仕様:

しかし7.5.2 7.5.2オンデマンドタイプインポート宣言に私は に、我々は、次の構文に従ってTypeName使用することができる場合を理解していません言う:

PackageOrTypeNameが型を表す(§6.5.4)、その後、名前が 修飾する必要があります(§6.5.5.2)、コンパイル時エラーが発生した場合。

だから私は、6.5.4にジャンプしますが、次は非常に不明瞭である。その後、PackageOrTypeNameが再分類され

PackageOrTypeName、Qは、Qという名前の種類の範囲で発生した場合、 TypeNameとして指定します。それ以外の場合は、 PackageOrTypeNameがPackageNameとして再分類されます。 という意味は、PackageOrTypeNameは再分類された名前の意味です。

私はTypeNameの使い方を想像できません。

*のタイプをインポートする例を教えてください。 TypeName

答えて

10

ネストされたクラスについて忘れているようです。たとえば、

import java.util.Map.*; 

Entryをインポートします。今では、この(修飾されていない)のように使用することができます。

Entry<String, String> e = ...; 

このインポートを行うための別の方法は次のとおりです。

java.util.Mapは型の名前である
import java.util.Map.Entry; 

+0

もう一つの例は、いくつかのクラスの静的関数のインポートです。 –

+1

@RC私はそれについて考えましたが、それは 'import static PackageOrTypeName。*;'という形式になります。 –

関連する問題