关于判断int是不是为空的问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于判断int是不是为空的问题。相关的知识,希望对你有一定的参考价值。
一个判断int类型是否为空。 a,b为int类型的,是sum方法的两个参数,现在要在命令行中输入两个参数,然后求和,如果在命令行中输入的参数只有一个,则要抛出异常,问题就是怎么判断这两个参数是否为空?
int作为整型变量,当定义时系统就会分配空间。无论是否赋值或初始化,均已经有了一个值在里面。
所以int本身不存在是否为空的情况。
如果要判断int是否被赋值过,可以用第二个变量来进行控制。如char变量。将第二个变量初始化值为0,当对int赋值时,同时将第二个变量赋值为1.
这样通过判断第二个变量,就可以知道int变量是否被赋值过。
参考代码如下:
int a;char b = 0;
//做一些操作,可能对a赋值。如果对a赋值了,那么一定要同时把b赋值为1.
if(b == 1) //被赋值过。
;//做一些操作。
else //没被赋值过。
;//另外的操作。 参考技术A 哥,你如果用IDE环境,你这个方法调用编译都不会通过。函数都进不去你判断2个参数是否为空,你在哪里判断啊?你执行的命令的时候回报编译错误的,编译如果没报错。运行的时候JVM也报NOSUCH的错误。追问
那拜托你说一下应该怎么弄,我是刚学这东西,不太明白,求指导
参考技术B int 的默认值为零,你可以把Int类型的该成 Integer类型的,Integer默认是null 这样就可以区分 零和null的区别啦追问呃,总算等到人了,能说的具体点么?最好付一下您的代码
追答你的a,b两个参数是Int 类型的,是无法区分赋值和未赋值的情况的,因为int未赋值的情况下默认值为0,和你把a或b赋值成0的这两种情况是不能区分的,你可以把a,b原来Int类型的数据改成a,b都为Integer类型的,Integer在未赋值的情况下默认值是null,和赋值成0是有区别的,代码可以这样子写
public int sum(Integer a,Integer b)
if(a==null || b==null)
throw new Exception("a或b参数不能为空");
else
return a+b;
如果要判断null的话 这样定义 Integer i=1;
Integer是int的封装类 这样的话i就是一个对象了 就可以使用if( i==null)了追问
意思是一开始定义参数的类型时候就定义成Integer类型?这样参数还可以被赋与整数类型的值么?
追答当然可以啊
参考技术D 可以这样:public int sum(Integer a,Integer b)
if(a==null||b==null)
// 错误处理
return a+b;
追问
嗯,我的意思是是说,这两个参数值是要在doc命令行里面给赋,这样的话,你说的方法还可不可行啊?
追答命令行,你可以对命令行输入的参数进行判断,args[] 是数组,可以判断有几个参数,然后如果是2个的话,然后依次判断其是不是能转换为int类型,可以的话再进行下一步操作
本回答被提问者采纳java 判断所有参数是不是为空
方法一:先把int类型的数据转换成String类型,然后判断String类型的数据是否为空。
示例代码:
int point;
String val=point +"";
if("".equals(val))
// do something...
PS:int point不是对象,int类型为空时默认为0。
方法二:
如果point是int类型,则得到的结果是不可能是null的。
如果插入一条数据时没有插入给字段,而数据库里默认是null的值的话,可以使用
Integer point= GiftInfo.getPoints();
然后判断point是否等于空。
示例代码:
Integer point= GiftInfo.getPoints();
if(point == null)
// do something...
PS:GiftInfo.getPoints返回的是Integer类型,Integer类型是包括基本类型的包装类,不给赋值的时候为null。 参考技术A 没有快捷方式,,一个个判断。你的方法参数很多吗?
以上是关于关于判断int是不是为空的问题。的主要内容,如果未能解决你的问题,请参考以下文章