【解決方法】Javaの型キャストエラー


私のコードは次のとおりです:

Java
int myInt = 56;
double myDouble = myInt;
System.out.println (myInt);
System.out.println (myDouble);

私が試したこと:

間違いを受け入れることができません。

解決策 1

引用:

Javaの型キャストエラー

これは、アプリケーション コードがクラス タイプ A のオブジェクトを別のクラス タイプ B にキャストしようとしたときに発生する実行時例外です。

しかし、上記のコードではそのような懸念は見当たりません。 変換できます intdouble Javaでは代入演算子を使用します。 読む[^]。

引用:

Java は、変換に関与する両方のデータ型に互換性がある場合、または小さいデータ型の値が大きいデータ型に割り当てられている場合に、暗黙的な変換または拡張変換を実行します。 Double はより多くの記憶領域を必要とするため、int よりも大きくなります。 したがって、int 値は Java によって暗黙的に double に変換されます。

Java
public static void main(String []args){
    System.out.println("Hello, World!");
    
    int myInt = 56;
    double myDouble = myInt;
    System.out.println (myInt);
    System.out.println (myDouble);

 }
// Output as below
// Hello, World!
// 56
// 56.0

データ型を逆にすると、互換性のない型のエラーが確実に発生します。 例:

Java
double myInt = 56;
int myDouble = myInt;
System.out.println (myInt);
// Errors as:
//error: incompatible types: possible lossy conversion from double to int 

[^]:

Java
// creating an object
Object o = new Object();

// type casting the object o to string which give the classcasted exception because we
// type cast an parent type to its child type.
String s = (String)o;

// errors as
// java.lang.ClassCastException: class java.lang.Object cannot be cast to class java.lang.String (java.lang.Object and java.lang.String are in module java.base of loader 'bootstrap')

コメント

タイトルとURLをコピーしました