如何判斷一個基本型別的變數的型別呢?
阿新 • • 發佈:2019-02-08
我們知道當變數是引用型別的時候,可以通過反射來判斷一個變數的型別。
可是當這個變數的型別是基本型別的時候呢,我們無法用反射來判斷他的型別,這個時候我們可以採用instanceof操作符來判斷。
下面我用一個典型的例子來做演示:
public class Test {
public static void main(String[] args) {
Test t = new Test();
byte b1 = 1;
byte b2 = 2;
System.out.println("b1的型別是:" + t.judgeType(b1));
System.out .println("b1+b2的型別是:" + t.judgeType(b1 + b2));
}
public String judgeType(Object temp) {
if (temp instanceof Byte) {
return "是Byte型別";
} else if (temp instanceof Integer) {
return "是Integer型別";
} else {
return "是其他型別";
}
}
}
控制檯輸出:
b1的型別是:是Byte型別
b1+b2的型別是:是Integer型別
這同樣解釋了之前的一個典型的例子:
byte b1 = 1;
byte b2 = 3;
byte b3 = b1 + b2; //會報錯
因為b1+b2他的型別是Integer型別的,你把他賦值給Byte型別是不可以的。需要進行強制轉換。
byte b3 = (byte)(b1+b2); //這才不會報錯