キャストはどの型からも、そしてどの型へも、自由にできるのでしょうか?師匠T:おぉ、それは良い質問じゃな。居眠りしておったからか、頭がいつもよりさえているようじゃの。うむ、自由というわけにはいかぬ。型によって、できるキャストが決められておるのじゃ。弟子D:基本的に、上位の型(intならlongというように)へのキャストはできるんですが、下位にはできないんですね。それで師匠、ラッパークラスとはなんぞや?師匠T:うむ。それは簡単に言ってしまえば、その型をより便利に使うために必要なクラスのことじゃ。int型のラッパークラスであるIntegerクラスなら、数値を文字列にしてくれるtoStringや、逆に文字列を数値に変換してくれるparseIntなどの、便利なメソッドが用意されておる。師匠T:さて、Javaが自動的にやってくれるキャストについてじゃが、これは変数に代入したり、計算を行うときに、Javaがその結果などを、適切な型に変換してくれる。弟子D:それは便利ですね。Javaに任せっきりにすると、思わぬエラーが出てくる可能性もあるから、なるべく必要なところでは、自分でキャストを行うのがいいじゃろう。師匠T:ではいよいよ、キャストのやり方を伝授するとしようぞ。intやlongなどの基本型同士のキャストについてじゃ。)で目的の型を囲んでやればいい。(double)b;弟子D:ふむふむ。師匠T:そして次は、数値の基本型(intやlongなど)とString型の変換についてじゃ。これは、先ほどのやり方ではキャストすることはできぬ。弟子D:String型は、String型のインスタンス......つまり、オブジェクトですから、当たり前といえば当たり前ですね。するのですか?師匠T:うむ。String型を、基本型にキャストする場合じゃが、こちらは、目的とする基本型のラッパークラスに備えられておる、parse〇〇〇メソッドを使う。Integer.parseInt(d);師匠T:逆に、基本型をString型にキャストする場合は、Stringクラスに備え付けられているvalueOfメソッドを使う。師匠T:さて、次はboolean型と、String型をキャストする方法じゃ。これも、通常の方法ではキャストすることはできぬ。これの場合も、基本型をString型にキャストするのと同じように、変換先の型のラッパークラスにあるvalueOfメソッドを使って変換する。booleanをStringに変換した場合、結果はtrueまたはfalseという文字列になる。Boolean.valueOf(j);師匠T:そして次。intとBigDecimalの変換についてじゃ。BigDecimalとはなんぞや?師匠T:うむ。これは、変更不可能な、任意の精度の符号付き10進数を扱う特別な型じゃ。オーバーフローしたり、精度を失うことなく、さまざまな計算ができるので、通貨の計算に適しておる。弟子D:なるほど!師匠T:それだけでなく、小数点以下の値を丸めるのにも便利じゃぞ。BigDecimal.valueOf(l);師匠T:一方、BigDecimal型から基本型に変換する場合は、『変換元であるBigDecimal型変数の』〇〇〇Valueメソッドを使う。n.intValue();師匠T:そして、StringとBigDecimalをそれぞれ変換する場合じゃが、まずはBigDecimalからStringに変換する方法。変換元変数のtoStringメソッドを使う。p.toString();師匠T:そして、String型からBigDecimalに変換する場合じゃが、これはちと厄介じゃ。引数に、変換元のString型を渡したうえで、BigDecimalのインスタンスを作る必要がある。師匠T:次は、Object型と基本型との変換についてじゃ。基本型はまたの名を、プリミティブ型と呼ばれることもある。Object型というのは、あらゆるクラスの親に当たる。全てのクラスは、スーパークラス(親となるクラス)として、これを持っておる。師匠T:さて、基本型は、Object型の変数にそのまま入れることはできぬ。その型のラッパークラスのインスタンスを作り、それをObject型変数に代入する必要がある。Integer(t);師匠T:そして、逆にObject型を基本型に変換する場合は、変換先の型のラッパークラスにある、〇〇Valueメソッドを使うのじゃ。Integer(v).intValue();弟子D:ふむふむ。師匠T:そしてラスト。Object型とString型についてじゃが、これは変換することなく、そのまま代入することができる。Object型をString型の変数に入れる場合は、toStringメソッドで、String型に変換してやる必要があるので注意するのじゃ。dd;弟子D:String型を、Object型に入れる場合は、そのまま入れればいいんですね。