2

なぜ私は型の不一致を取得しています: can't convert from int to byteを参照して、byteオペランド間の加算の結果が自動的に に拡張されると言及されている場所を見つけるために、JLS でクイック検索を試みましたint

私が見つけた最高のものはこのチュートリアルでしたが、JLSには何も見つかりませんでした。

変換の章では、加算演算子については何も言及されていません。少なくとも私は何かを見つけることができませんでした。Additive Operatorsの段落では、バイトの自動拡張については言及されていません。それは言及していますが the type of each of the operands of the binary - operator must be a type that is convertible (§5.1.8) to a primitive numeric type、拡大については何もありません。また、バイトは数値データ型です。

私は何が欠けていますか?

4

2 に答える 2

2

Java 7 では、関連するセクションは JLS 5.6.2とオペレーターのそれぞれのセクションです。たとえば、数値の二項加算演算子の場合はJLS 15.18.2です。

演算子のセクションには、バイナリ プロモーションが最初に実行されると記載されています。byte次に、セクション 5.6.2 で、のバイナリ プロモーションについて説明し、他のオペランドが整数の場合はへの変換を意味しshortます。charint

于 2013-05-19T11:12:22.560 に答える