1. java怎麼判斷一個數據是什麼類型
先得到對象的類位元組碼Class對象,通過Class對象再得到類型,而後進行判斷是內不原始類型方法可能是isPrimitive或數組isArray()。
2. JAVA怎樣判斷一個對象的類型
System.out.println(object.getClass().getName());
使用java.lang.Object 中的getClass()方法
/**Class<?> getClass()
Returns the runtime class of this Object. */
3. java 判斷一個jsonobject中的屬性是object 還是array
1. java中所有的對象都來是object子類,源數組也是
2. array在json中使用[]
3. 一般不判斷屬性是什麼,都是先定義好,然後直接使用object或者array
4. 如果有不同情況,可以添加2個屬性,一個object,另一個array
4. java 判斷數據類型和方法的參數類型相同
1、如果你得到是一個Object對象,可以用if(obj instanceof String)來判斷是否是String對象,int是基本類型不可以這么判斷,只能用它的包裝類Integer,同樣用instanceof 。
2、如果set方法只能接受一個參數,而且必須有int的話,可以寫多個set方法,如set(String),set(int),編寫不同的處理邏輯。
3、instanceof 也是反射的一種方式。
4、如果有2個Object的參數,可以用if(obj1.getClass()==obj2.getClass())來判斷類型是否相同,如果要得到類型名,可以用obj.getClass().getName()來獲得對象的類名。
關於java數據類型的分類
Java基本類型共有八種,基本類型可以分為三類,字元類型char,布爾類型boolean以及數值類型byte、short、int、long、float、double。數值類型又可以分為整數類型byte、short、int、long和浮點數類型float、double。
JAVA中的數值類型不存在無符號的,它們的取值范圍是固定的,不會隨著機器硬體環境或者操作系統的改變而改變。實際上,JAVA中還存在另外一種基本類型void,它也有對應的包裝類 java.lang.Void,不過我們無法直接對它們進行操作。
8 中類型表示範圍如下:
byte:8位,最大存儲數據量是255,存放的數據范圍是-128~127之間。
short:16位,最大數據存儲量是65536,數據范圍是-32768~32767之間。
int:32位,最大數據存儲容量是2的32次方減1,數據范圍是負的2的31次方到正的2的31次方減1。
long:64位,最大數據存儲容量是2的64次方減1,數據范圍為負的2的63次方到正的2的63次方減1。
float:32位,數據范圍在3.4e-45~1.4e38,直接賦值時必須在數字後加上f或F。
double:64位,數據范圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加。
boolean:只有true和false兩個取值。
char:16位,存儲Unicode碼,用單引號賦值。
5. java判斷object 是字元串還是數字
//判斷數字
try{
newBigDecimal(object.toString());
}catch(NumberFormatExceptione){
//不成功就不是數字
}
//判斷字元串使用obejectinstanceOfString即可
6. Java中怎樣判斷一個變數是否屬於哪種類型
變數類型識別有3種方法:
1、通過反射拿到變數的類型;
2、instanceof關鍵字判斷;
3、通過java的多態(方法重載)來DIY類型識別。
舉例如下:
packagecom.cxyapi.oo;
/**類型識別工具測試類
*@[email protected]
*/
publicclassTypeToolsTest
{
publicstaticvoidmain(String[]args)
{
inti=0;
TypeObjectto=newTypeObject();
//1.反射
System.out.println("to的類型:"+to.getClass().getSimpleName());
System.out.println(int.class.getSimpleName());
System.out.println(Integer.class.getSimpleName());
//但是對於一個不確定類型的基本數據類型變數我們沒法用反射來獲取其類型。
System.out.println("----------------------");
//2.instanceof
if(toinstanceofTypeObject){System.out.println("to是TypeObject類型的");}
//但是這種辦法貌似也沒法確定基本數據類型
System.out.println("----------------------");
//以上兩種方式對於對象,引用類型的都很好用,但是對基本數據類型就不那麼好用了。
//3.通過多態(方法的重載)
System.out.println("i是:"+TypeTools.getType(i));
System.out.println("to是:"+TypeTools.getType(to));
System.out.println(""cxyapi"是:"+TypeTools.getType("www.cxyapi.com"));
//可以看出來最後一種方式使用多態的方式達到了檢測類型(基本類型和引用類型)的目的
//除了彌補其他兩種方式不能檢測基本數據類型的不足在外,還能自己DIY類型信息
}
}
//定義一個類,為了演示引用類型的類型檢測
classTypeObject{}
自定義的類型識別工具:
packagecom.cxyapi.oo;
importjava.util.HashMap;
importjava.util.Map;
/**類型識別工具
*@[email protected]
*/
publicclassTypeTools
{
//獲得類型
publicstaticMap<String,String>getType(Objecto)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型",o.getClass().getSimpleName());
typeInfo.put("描述","引用類型");
returntypeInfo;
}
publicstaticMap<String,String>getType(inti)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","int");
typeInfo.put("描述","整形");
returntypeInfo;
}
publicstaticMap<String,String>getType(longl)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","long");
typeInfo.put("描述","長整型");
returntypeInfo;
}
publicstaticMap<String,String>getType(booleanb)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","boolean");
typeInfo.put("描述","布爾類型");
returntypeInfo;
}
publicstaticMap<String,String>getType(charb)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","char");
typeInfo.put("描述","字元");
returntypeInfo;
}
publicstaticMap<String,String>getType(floatf)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","float");
typeInfo.put("描述","單精度浮點型");
returntypeInfo;
}
publicstaticMap<String,String>getType(doubled)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","double");
typeInfo.put("描述","雙精度浮點型");
returntypeInfo;
}
publicstaticMap<String,String>getType(Strings)
{
Map<String,String>typeInfo=newHashMap<String,String>();
typeInfo.put("類型","String");
typeInfo.put("描述","字元串類型");
returntypeInfo;
}
}
7. java如何判斷對象屬性是什麼類型
java中判斷Object對象類型
復制代碼
Object param = params.get(i);
if (param instanceof Integer) {
int value = ((Integer) param).intValue();
prepStatement.setInt(i + 1, value);
} else if (param instanceof String) {
String s = (String) param;
prepStatement.setString(i + 1, s);
} else if (param instanceof Double) {
double d = ((Double) param).doubleValue();
prepStatement.setDouble(i + 1, d);
} else if (param instanceof Float) {
float f = ((Float) param).floatValue();
prepStatement.setFloat(i + 1, f);
} else if (param instanceof Long) {
long l = ((Long) param).longValue();
prepStatement.setLong(i + 1, l);
} else if (param instanceof Boolean) {
boolean b = ((Boolean) param).booleanValue();
prepStatement.setBoolean(i + 1, b);
} else if (param instanceof Date) {
Date d = (Date) param;
prepStatement.setDate(i + 1, (Date) param);
}
復制代碼
8. java如何判斷一個傳入的object參數應該轉換成什麼類型(int,double,date,string.....)
if(obj instanceof Integer){
}else if(obj instanceof String){
}