2017-03-15 16 views
0

私はIntelliJのアイデアを使用していると私は私がfoo.bar.import"foo.bar.import"というパッケージ名を付けることをお勧めしますか?

アイデアが私のために新しいパッケージを作成するという名前の新しいパッケージにfoo.barからのデータのインポートに関連するいくつかのクラスを移動したかったが、私はそれに何かを動かすことはできません。 。私はドラッグしようとしたともRefactor->

enter image description here

を移動し、私は、パッケージに名前を付けることができなかった理由を、importは、ソースコードの予約語ですが、私が何らかの理由を見つけることができなかったことを知っていますこのような。これはIdeaのバグですか、それともJava言語の制限がありますか?

+1

Javaの制限です。* [PackageName](https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-PackageName)の文法で説明されています。 * [Identifier](https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-Identifier)*。 – 4castle

+1

恐ろしい名前も許されていました。名前を混乱させないようにするのが最善です。 –

+0

「com.company.domainmodel.import」と言うと混乱することはありません。 – NeplatnyUdaj

答えて

3

Java言語仕様は、識別子のシーケンスとしてパッケージ名を定義し、識別子は

識別子定義されています。 IdentifierCharsではなく、キーワードをかBooleanLiteralまたはNullLiteral

importは有効な識別子ではないため、私たちになることはできませんパッケージ名のセグメントとして編集します。

2

@ 4Castleが指摘するように、package namesは、で構成され、keywordsを含むことはできません。 importはキーワードです。

私は代替パッケージ名を提案することができます:for.bar.domainmodel.dataimport

+0

ありがとう。今は理にかなっている。私はIdeaが/ srcの下にそのようなパッケージを作ってくれるのでちょうど混乱していた – NeplatnyUdaj

関連する問題