0

だから私は整数がそれで計算することを許可しないと言っているサイトに行きました、+-* /%^など。

しかし、私は試しました

Integer n=new Integer(8);
    n+=2;
    Integer m=new Integer(10);
    System.out.println(n+m);

そしてそれは20を印刷します。それで私は少し混乱しています。私はこれが初心者の質問であることを知っていますが、私は本当にこれを手に入れたいので、何が欠けているのかわかりません。つまり、これは実際には「整数はそれを使った計算を許可しない」という意味です。

ありがとう。

編集:@peopleリクエスト:正確な情報を提供するサイト?

4

3 に答える 3

7

Java 1.5以降では、プリミティブ型が自動的にボックス化(およびボックス化解除)されます。これはオートボクシングと呼ばれます。

遭遇したサイトは、1.5より前のJavaについて話していた可能性があります。

Javaバージョン[1.4、編集済み]より前のコードでは、プリミティブintから整数オブジェクトへの手動変換を何度も行う必要がありました。同様にbyte / Byte、char / Character、short / Short、long / Long 、float/Floatおよびdouble/Double。(http://mindprod.com/jgloss/autoboxing.html

于 2012-04-23T18:17:43.300 に答える
1

そのウェブサイトはおそらく少し時代遅れです...

1.4より前のバージョンのJavaを使用していた場合、プリミティブ型(および文字列...これはまったく別の問題です)でのみ+演算子を使用できるため、そのステートメントは真です。

現在(Java 1.5以降を読んでください)、JVMは、+を適用しようとすると、そのIntegerオブジェクトを自動的にintに変換します。

nullを指すIntegerオブジェクトに+演算子を適用しようとすると、nullオブジェクトに適用されているボックス化解除が原因でNullPointerExceptionが発生することに注意してください。

于 2012-04-23T18:23:45.280 に答える
-1

parseIntこれらの変数にはjavascript関数を使用してください。

docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html

于 2012-04-23T18:19:44.217 に答える