「文字」の新しい配列を作成する使用:int型[]新しいint型= [「」]

Bahna:

配列を作成している間、私たちは渡すことができますshortcharbyteintだから、[理由]はint[] a = new int['a']有効?これは、コンパイル時にエラーになりません。

この形式の配列宣言は何を意味するのでしょうか?

アンディ・ターナー:

JLS秒15.10.1

DimExpr内の各次元表現のタイプは、一体型に変換(5.1.8)であるタイプ、またはエラーが発生するコンパイル時でなければなりません。

各次元式は、単項数値昇格(5.6.1)を受けます。昇格型はintでなければならない、またはコンパイル時エラーが発生します。

以下とからJLS秒5.6.1

オペランドがコンパイル時の型バイト、ショート、キャラクター、又は整数である場合、それがアンボクシング変換(5.1.8)に供されます。結果は、拡大プリミティブ変換(5.1.2)又は恒等変換(5.1.1)によって、int型の値に昇格されます。

そして

オペランドがコンパイル時の型バイト、短い、またはcharである場合にそうでなければ、それは拡大プリミティブ変換(5.1.2)によって、int型の値に昇格されます。

だから、のいずれかのByteShortCharacterIntegerbyteshortcharまたはint許容されています。

従って'a'、チャーリテラルは、許可され、そしてに促進されるint値97。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=166025&siteId=1