0

なぜ機能しないのか理解できない問題に苦しんでいます。double obj変数を に渡し、に変換するにはどうすればよいintですか?
上部のコード スニペットでは機能しないのに、行の下の下部のコード スニペットでは機能するのはなぜですか?

唯一の違いは、追加の変数を追加しているようです。これもdouble?として型付けされます。

//Converting double to int using helper

//This doesn't work- gets error message
//Cannot invoke intValue() on the primitive type double

double doublehelpermethod = 123.65;
double doubleObj = new Double( doublehelpermethod);
System.out.println("The double value is: "+ doublehelpermethod.intValue());
//--------------------------------------------------------------------------
//but this works! Why?

Double d = new Double(123.65);
System.out.println("The double object is: "+ doubleObj);
4

2 に答える 2

3

doubleプリミティブ型ですDoubleが、 は通常の Java クラスです。プリミティブ型でメソッドを呼び出すことはできません。ただし、 javadocに示されているように、このintValue()メソッドは で使用できます。Double

これらのプリミティブ型の詳細については、こちらを参照してください

于 2011-12-25T21:34:13.490 に答える
1

あなたは上のスニペットにいて、Double オブジェクトをこのようなプリミティブ型に割り当てようとしています。

double doubleObj=new Double( doublehelpermethod);

これはもちろん、ボックス化解除(ラッパー型を同等のプリミティブ型に変換する)のために機能しますが、直面している問題は逆参照doublehelpermethodです。

doublehelpermethod.intValue()

doublehelpermethodプリミティブ型の変数であり、ドットを使用して関連付けることができないため、不可能です.。参照...

于 2011-12-25T21:29:42.167 に答える