Javaの変換系のまとめです。
プリミティブ型とそのラッパークラスのクラス型の相互変換のメモです。
tipsめも。
変換系
Integer
<-> int
int
-> Integer
int型をInteger型に変換します。
int i = 2;
Integer i_integer = Integer.valueOf(i);
String type = i_integer.getClass().getSimpleName();
System.out.printf("%s %d",type, i_integer);
Integer 2
Integer
-> int
Integer型をint型に変換します。
// Integer -> i
int ii = i_integer.intValue();
System.out.println(ii);
String
-> int
// String -> i
String str = "25";
// 暗黙的に`Integer` -> intに変換します。
int number = Integer.parseInt(str);
System.out.println(number);
// 暗黙的に`Integer` -> intに変換します。
int bb2 = Integer.valueOf(str);
System.out.println(bb2);
25
25
※Integer.valueOf
とInteger.parseInt
の違い
Integer.valueOf
とInteger.parseInt
については、前者はInteger
クラスで返し、後者はプリミティブ型となるint
型で返しているようです。次で触れる暗黙的変換のため、結果が同じとなってます。
※プリミティブ型とそのラッパークラスのクラス型との暗黙的な変換について
// 変数定義
int primitive = 1;
Integer wrapper = null;
// プリミティブ型からラッパークラスへの変換
wrapper = primitive;
// ラッパークラスからプリミティブ型への変換
// (変換が正しく行われればif文の中に入り変数の中身を出力)
if (primitive == wrapper) {
System.out.println(wrapper);
}