Java型キャスト完全ガイド:拡大変換から縮小変換まで
Java型キャスト
Javaの型キャストを、その主要形式と明確な例で解説します。
Java型キャストに入る前に、Javaのデータ型を理解していることを確認してください。
型キャスト
あるデータ型(int、float、doubleなど)の値を別の型に変換するプロセスを型キャストと呼びます。
Javaには13種類の変換がありますが、このチュートリアルでは2つの核心カテゴリに焦点を当てます:
- 拡大型キャスト(Widening Type Casting)
- 縮小型キャスト(Narrowing Type Casting)
包括的なリストはJava公式型変換ドキュメントを参照。
拡大型キャスト(Widening Type Casting)
拡大型キャストでは、Javaがより小さいプリミティブをより大きいものに自動的にプロモートし、データ損失なしを保証します。
例:intからdoubleへの変換
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("整数値: " + num);
double data = num;
System.out.println("double値: " + data);
}
}
出力
整数値: 10 double値: 10.0
これはint変数が代入前にdoubleにプロモートされる様子を示します。この変換の自動性から暗黙的型キャストとも呼ばれます。
注意: 拡大変換は安全でコンパイラによって実行されます。
縮小型キャスト(Narrowing Type Casting)
縮小型キャストでは、より大きいプリミティブをより小さいものに明示的にキャストする必要があります(括弧を使用)。
例:doubleからintへの変換
class Main {
public static void main(String[] args) {
double num = 10.99;
System.out.println("double値: " + num);
int data = (int)num;
System.out.println("整数値: " + data);
}
}
出力
double値: 10.99 整数値: 10
キャスト(int)により小数部分が切り捨てられ、この変換が明示的型キャストと見なされ、データ損失につながる理由を示しています。
注意: Javaは縮小変換を自動実行しません。
以下はプリミティブと文字列間の実践的変換です。
例1:intからStringへ
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("整数値: " + num);
String data = String.valueOf(num);
System.out.println("文字列値: " + data);
}
}
出力
整数値: 10 文字列値: 10
ここではString.valueOf()で整数をテキスト表現に変換。
例2:Stringからintへ
class Main {
public static void main(String[] args) {
String data = "10";
System.out.println("文字列値: " + data);
int num = Integer.parseInt(data);
System.out.println("整数値: " + num);
}
}
出力
文字列値: 10 整数値: 10
パースはInteger.parseInt()に依存。文字列がパース不能な場合NumberFormatExceptionがスローされます。
注意: 実行時例外を避けるため入力を検証してください。
Java
- C++ char型をマスター:宣言、ASCII、変換テクニック
- Python 型変換とキャスト: 包括的ガイド
- Javaプリミティブデータ型:例付き完全ガイド
- Java演算子をマスター:種類、構文、実践例
- Javaコメント:種類、使い方、ベストプラクティス
- Java拡張forループをマスター:構文、例、ベストプラクティス
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Javaカプセル化マスター:データ隠蔽の実践ガイド
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Java型キャスト完全ガイド:拡大変換から縮小変換まで