Javaで変数のデータ型を知りたい時(判定)にinstanceofメソッドを使います。
本記事ではこのデータ型の判定に使えるinstanceofの使い方を簡単に説明していこうと思います。
本記事と一緒に読みたい記事
目次
データ型とは?

まずデータ型の確認から簡単にしていきましょう。
まずJavaのデータ型は大きく分けて2つに分けることができます。
プリミティブ型(基本型)
long -> 整数
int -> 整数
short -> 整数
byte -> 整数
double -> 少数
float -> 少数
boolean -> 真偽
char -> 1文字
参照型(クラス型)
String -> 文字列を扱うクラス
Integer -> 整数を扱うクラス
プリミティブ(基本)型と違い、クラスを扱うのがポイントです。
プリミティブ型と参照型の違い
ではJavaのプリミティブ型(基本型)と参照型(クラス型)の違いは何なんでしょう。
1 2 3 4 5 |
//プリミティブ型で定義 int a = 10; //参照型で定義 Integer b = 20; |
どっちでも良いやってなりそうですが、
Integer型とint型は同じものだとばかり思ってました。
これらの記事に違いが少し書いてありました。ざっくりまとめると、
・Integerはint型のラッパーで、int型と同じ整数のデータを持てる
・Integerはintと違ってデータだけでなく、便利なメソッドも持っている
って感じで、Integerの方ができることは多そうです。
そして本題ですが、Javaで変数のデータ型を判定したい時に使うinstanceofは上の参照型にのみ使えます。
ではinstanceofの使い方を確認しましょう!
Javaでデータ型の判定にはinstanceofを使う
書き方(公式)
1 |
オブジェクト instanceof 型 |
サンプルコード
1 2 3 |
Integer b = 33; System.out.println(b instanceof Integer); //結果: true |
まず参照型のIntegerで変数bを定義しています。値は33です。
そしてこの変数bを、
1 |
(b instanceof Integer) |
instanceofを使ってIntegerかどうかを判定しています。
結果はtrueと返ってきてIntegerであることが判定できます。
プリミティブ型のintの変数にinstanceofを使うとエラーが出ます。
1 2 3 |
int a = 22; System.out.println(a instanceof Integer); |
プリミティブ型の変数aに22を入れています。
このaのデータ型を判定しようとすると、

参照型を期待しているのに、プリミティブ型intがきてるよと言われます。
まとめ
以上、Javaで変数のデータ型の判定を行いたい時に使うinstanceofを紹介しました。
ポイントは、
・instanceofは参照型変数に使う
・データ型が正しければtrueが返ってくる
という点です!
最短1ヶ月でWebエンジニアに転職できる無料のプログラミングスクールならGEEK JOBキャンプ・スピード転職コース(完全無料)↓↓
- GEEK JOBキャンプ・スピード転職コース(完全無料)…サイバーエイジェントなど人気企業への転職実績がある完全無料のプログラミングスクール。20代限定
本記事と一緒に読みたい記事