java判断变量是什么类型的(在java中,怎样判断一个变量是什么类型的)
这篇文章给大家聊聊关于java判断变量是什么类型的,以及在java中,怎样判断一个变量是什么类型的对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
Java中怎样判断一个变量是否属于哪种类型
变量类型识别有3种方法:
1、通过反射拿到变量的类型;
2、instanceof关键字判断;
3、通过java的多态(方法重载)来DIY类型识别。
举例如下:
packagecom.cxyapi.oo;
/**类型识别工具测试类
*@authorcxy@www.cxyapi.com
*/
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;
/**类型识别工具
*@authorcxy@www.cxyapi.com
*/
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;
}
}
Java中怎么知道一个变量的类型
复制下面代码:
class Test{
public static void main(String[] args){
int i=1;//int类型变量
System.out.println(getType(i));//打印变量类型为int
}
public static String getType(Object o){//获取变量类型方法
return o.getClass().toString();//使用int类型的getClass()方法
}
}
扩展资料:
java8种基本数据类型(4种整型+2种浮点型+1种字符型+1种逻辑型)
4种整型:
byte-1字节:-128~127;
short-2字节:-32768~32767;
int-4字节:-2^31~2^31-1;
long-8字节:-2^63~2^63-11234。
2种浮点型
float-4字节-32位IEEE 754单精度(有效位数6~7位);
double-8字节-64位IEEE 754双精度(有效位数15位)。
1种字符型
char-2字节-整个Unicode字符集。
1种逻辑型
boolean-1字节-true或者false。
在java中,怎样判断一个变量是什么类型的
哥们。。
一般没有在程序里才去判断这个《是什么类型的》。。。而且这样没有意义。
因为类型太多了。一般都是判断《不是什么类型》就会用你说的instanceof做一个if判断。
若想知道一个出现的对象是什么类型。要是你想用程序识别的话你就需要用到映射了。
这个一两句说不清。若是你本人读代码想知道什么类型。那就按CTRL+鼠标点击该对象。。
额 LZ若真想在程序里判断。只好去看看映射的东西了
java中变量a是double型的。怎么判断a是否为null
Double a= Double.NaN;
//第一种前两种要求类型是Double即包装类
System.out.println(a.equals(Double.NaN));
//第二种
System.out.println(a.equals(0.0d/ 0.0));
//第三种使用Double的静态方法,方法实现就是第四种类型无要求
System.out.println(Double.isNaN(a));
//第四种利用NaN自己和自己不相等的特性,
//要求类型必须是double,不能是包装类,否则结果是false
//因为包装类是引用类型,比较的!=是地址的比较而不是值的比较。
double b= Double.NaN;
System.out.println(b!= b);
扩展资料:
实际开发中常常遇到这种需求:double类型的数据如果为空,就展示空字符串;如果为0,就展示0。
一般是这样做,新建一个model,和数据库里的字段,数据类型一一对应。然后把数据库里的数据取到这个model的集合里,然后进行进一步处理。
这时候就有个问题,比如double类型会默认初始化为0,这样就无法区分数据库里是0值还是null。
解决方法一
再从数据库中获取你所需要的数据的条数。这样如果值为0且数据条数小于等于0,这种情况就是空值;否则就是0.
解决方法二
可空类型。double,有0值就是0,没有值就是null。
OK,本文到此结束,希望对大家有所帮助。