-
■Objectとintについて
Objectは参照型であり、クラス階層のルートです。 すべてのクラスは、スーパークラスとして Object を持ちます。 intは数値を扱うプリミティブ型であり、間接参照することはできません。 プリミティブ型の領域については、Java入門講座の変数を参照してください。
■Objectとintの型変換
プリミティブ型は、間接参照することはできません。 つまり、intの値”10”などをObject型の変数に直接代入することはできません。 そこで、ラッパークラスでラップして型変換してから代入します。
JDK5.0(Tiger)以降は、オートボクシング機能により、暗黙的に型変換されるので、一部においてラッパークラスを記述したり、intValue()などのメソッドを記述する必要がなくなりました。
■Object型からプリミティブ型への変換
以下のサンプルプログラムでは、Objectから各プリミティブへ型変換しています。 Object型をプリミティブ型へ変換するには、Object型の値を初期値とするラッパークラスのオブジェクトを生成する必要があります。
サンプルソースコード class sample { public static void main(String args[]) { Object obj = 12; String objStr = obj.toString(); byte num1 = new Byte(objStr).byteValue(); short num2 = new Short(objStr).shortValue(); int num3 = new Integer(objStr).intValue(); long num4 = new Long(objStr).longValue(); float num5 = new Float(objStr).floatValue(); double num6 = new Double(objStr).doubleValue(); // オートボクシング機能(JDK5.0以降) byte numA = new Byte(objStr); short numB = new Short(objStr); int numC = new Integer(objStr); long numD = new Long(objStr); float numE = new Float(objStr); double numF = new Double(objStr); System.out.println( num1 ); System.out.println( num2 ); System.out.println( num3 ); System.out.println( num4 ); System.out.println( num5 ); System.out.println( num6 ); System.out.println( numA ); System.out.println( numB ); System.out.println( numC ); System.out.println( numD ); System.out.println( numE ); System.out.println( numF ); } }
※サンプルソースコードにおいて、Objectの値を文字列に変更したり、小数や領域外の数に変更すると、NumberFormatExceptionが発生します。
■プリミティブ型からObject型への変換
以下のサンプルプログラムでは、プリミティブ型からObject型へ変換しています。
サンプルソースコード class sample { public static void main(String args[]) { byte num1 = 1; short num2 = 2; int num3 = 3; long num4 = 4; float num5 = 5; double num6 = 6; Object obj1 = new Byte(num1); Object obj2 = new Short(num2); Object obj3 = new Integer(num3); Object obj4 = new Long(num4); Object obj5 = new Float(num5); Object obj6 = new Double(num6); // オートボクシング機能(JDK5.0以降) Object objA = num1; Object objB = num2; Object objC = num3; Object objD = num4; Object objE = num5; Object objF = num6; System.out.println( obj1 ); System.out.println( obj2 ); System.out.println( obj3 ); System.out.println( obj4 ); System.out.println( obj5 ); System.out.println( obj6 ); System.out.println( objA ); System.out.println( objB ); System.out.println( objC ); System.out.println( objD ); System.out.println( objE ); System.out.println( objF ); } }
次ページでは、Object型とString型のキャストについて説明します。
» 次ページ「Object型とString型のキャスト」
トップページ » Javaキャスト入門 » Objectとintの型変換
-
-
- Java ポケットリファレンス
- 発売:2011/03/25
- 定価:2,709円
- 著者:高江 賢
- 出版:技術評論社
内容:ベーシックだけど忘れてしまいがちな情報をコンパクトなサイズに凝縮し、「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」特徴で現場に欠かせない1冊です。 - Java ポケットリファレンス
-
- プログラマが知るべき97のこと
- 発売:2010/12/18
- 定価:1,995円
- 著者:和田 卓人
- 出版:オライリージャパン
内容:世界中で活躍するプログラマによる97本のエッセイを収録した書籍です。プログラミングにおいてもっとも重要な事柄は何か、バージョン管理やテスティング、設計原則とコーディングテクニック、また腕を磨くための勉強法などについて、経験豊かなプログラマが自らの体験を踏まえて解説します。 - プログラマが知るべき97のこと
-
- Effective Java
- 発売:2008/11/27
- 定価:3,780円
- 著者:Joshua Bloch他
- 出版:ピアソンエデュケーション
内容:著者のGoogle, Sun Microsystemsにおけるソフトウェア開発で得た知識・経験をまとめています。Javaプログラミングをする全てのSE必読の書籍です。 - Effective Java
-
- プログラミング言語Java
- 発売:2007/04
- 定価:4,410円
- 著者:ケン・アーノルド他
- 出版:ピアソンエデュケーション
内容:Javaの原典と呼べる本です。変数、コメント、定数、制御、クラス、配列、文字列、例外処理までわずか30ページで進むので、Javaを学習し始めたばかりの方には少し難しいかもしれません。厚さの割に価格も手ごろなので、Java使いなら本棚に置いておきたい本です。 - プログラミング言語Java
-
- なぜ、あなたはJavaでオブジェクト指向開発ができないのか
- 発売:2004/12
- 定価:2,289円
- 著者:小森 裕介
- 出版:技術評論社
内容:Javaのソフトウェア開発を中心に事業を発展させてきたSMG社の新人教育セミナーを加筆・書籍化したもので、大卒の新人に対して、ゼロからJava言語を教えてきた実績をフィードバックしています。 - なぜ、あなたはJavaでオブジェクト指向開発ができないのか
-