0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaの型変換エラー「.classがありません」はキャストの罠だった話

Posted at

はじめに

こんにちは!Javaを学習中の皆さん。
変数の型を変換しようとして、こんなエラーに遭遇したことはありませんか?

スクリーンショット 2025-08-05 22.32.43.png

あるいは、エディタにこんな風に赤い波線で怒られたり…

スクリーンショット 2025-08-05 22.33.14.png

.classがありませんってどういうこと?」「ただ型を変えたいだけなのに…」
私も先日、double型の値をint型に入れようとして、このエラーで少しの間ハマってしまいました。

この記事では、このエラーの原因と、Javaにおける正しい「型変換(キャスト)」の方法について、私の失敗談を元に解説していきます。

エラーが発生したコード(失敗例)

私が最初に書いてしまったのが、こちらのコードです。
double型の変数dの値を、int型の変数iに入れようとしました。

// これはエラーになるコードです
int i = int d; 

int型のiに、intにしたdを入れる…」と、頭の中のイメージをそのままコードにした結果ですが、残念ながらこれはJavaの文法として間違いでした。

Javaのコンパイラは int d の部分をどう解釈していいか分からず、'.class'がありません という少し分かりにくいエラーを出力してしまったようです。

正しい型変換「キャスト」の書き方

エラーを解決するためには、キャスト演算子というものを使う必要がありました。
キャスト演算子とは (変換したい型) のように、型名をカッコで囲んだものです。

これを使って、先ほどのコードを正しく修正したのがこちらです。

スクリーンショット 2025-08-05 22.33.31.png

int d と書くのではなく、(int)d のように、変換したい値の前にカッコで型を指定するのが正解だったのです。

「キャスト」の挙動と注意点

この正しい書き方を理解した上で、もう一つ重要なポイントがあります。
それは、double(浮動小数点数)から int(整数)へのキャストは、小数点以下が切り捨てられるというルールです。

例えば、0.5int にキャストすると、四捨五入されて 1 になるのではなく、小数点以下がバッサリ切り捨てられて 0 になります。

この点を踏まえて、最終的に完成したコード全体を見てみましょう。

完成したコードと実行結果

スクリーンショット 2025-08-05 22.31.57.png

このコードの流れを追ってみましょう。

  1. double d = 0.5;
    d という変数に 0.5 が入ります。
  2. System.out.println(d);
    画面に 0.5 と表示されます。
  3. int i = (int) d;
    d の値 0.5int にキャストします。小数点以下が切り捨てられるので、変数 i には 0 が代入されます。
  4. i = 3;
    変数 i の値が 0 から 3上書きされます。
  5. System.out.println(i);
    最終的な i の値である 3 が画面に表示されます。

そして、このコードを実行した結果がこちらです。

スクリーンショット 2025-08-05 22.32.08.png

意図した通りの結果になりました!

まとめ

今回は、Javaの型変換(キャスト)における、よくあるつまずきポイントを解説しました。

  • ある型の値を別の型に変換するには、キャスト演算子 (型名) を使う。
  • double から int へのキャストでは、小数点以下は切り捨てられる
  • 一見関係なさそうなエラーメッセージでも、実は基本的な文法ミスが原因だったりする。

エラーはプログラミング学習の最高の友達です。一つ一つのエラーと丁寧に向き合うことで、着実に力がついていきます。
この記事が、同じエラーで悩んでいる誰かの助けになれば幸いです。

Happy Coding!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?