PHASE2 LOG

主にIT関連・ゲームのログ

Javaのお勉強~Auto-Boxingって?~

      2016/12/25

全く知らなくて予備知識がないですが、「Auto-Boxing」とは何かをお勉強してみました!

 

Auto-Boxingとは

Auto-Boxing」は基本データ型からラッパークラスへの自動変換ができる機能です。

ラッパークラスって何だっけ…と思ってしまった方は

以下の記事を見ていただけると幸いです。…少なくとも私は覚えていなかったですw

Javaのお勉強~ラッパークラス~

これだけではイメージ湧きにくいので、実際の例をもとに説明してみます!

public class AutoboxingTest {
	public static void main(String[] args){
		int no1 = 10;
		
		/*Auto-Boxingを使わない場合*/
		//ラッパークラスへ変換
		Integer none = new Integer(no1);
		System.out.println("なし:" +none);
		
		/*Auto-Boxingを使う場合*/
		//ラッパークラスへ変換
		Integer auto = no1;
		System.out.println("あり:" +auto);		
	}
}

 

Auto-Boxingが使えない従来のバージョンでは、

ラッパークラスで基本データ型の値を扱うためには

new Integer(no1) といったように型の変換(キャスト)が必要でした。

 

J2SE5.0以降では、そういった型のキャストは不要で

そのまま基本データ型の値をラッパークラスで使用することができます。

 

Auto-UnBoxing

Auto-Boxingと対となって「Auto-UnBoxing」という機能があります。

Auto-UnBoxingはラッパークラスから基本データ型へ自動変換をする機能となります。

 

public class AutoUnBoxingTest {
	public static void main(String[] args){
		
		Integer no2 = new Integer(20);
		
		/*Auto-UnBoxingを使わない場合*/
		//基本データ型へ変換
		int unautonone = no2.intValue();
		System.out.println("なし:" + unautonone);
		
		/*Auto-UnBoxingを使う場合*/
		//基本データ型へ変換
		int unauto = no2.intValue();
		System.out.println("あり:" + unauto);
				
	}
}

 

Auto-UnBoxingの機能がない場合には、I

IntegerクラスのintValue()メソッドでint型の値を取得する必要がありました。

 

Auto-UnBoxing機能があるとそんな手間はなく、自動でint型へ変換してくれます。

 

 

今回の内容を図にするとこんな感じですね!

 

 

あまり気にすることなく使用されそうですが、こういう機能があるから

自動で変換されているんだよ!ってことですね。

 

 

人気ブログランキング

 -