新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
先把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。
参考资料
判断int类型是否为空.CSDN博客 [引用时间2017-12-27]
/**
* 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty
*
* @param obj
* @return
*/
public static boolean isNullOrEmpty(Object obj) {
if (obj == null)
return true;
if (obj instanceof CharSequence)
return ((CharSequence) obj).length() == 0;
if (obj instanceof Collection)
return ((Collection) obj).isEmpty();
if (obj instanceof Map)
return ((Map) obj).isEmpty();
if (obj instanceof Object[]) {
Object[] object = (Object[]) obj;
if (object.length == 0) {
return true;
}
boolean empty = true;
for (int i = 0; i object.length; i++) {
if (!isNullOrEmpty(object[i])) {
empty = false;
break;
}
}
return empty;
}
return false;
}
应用场景:
读取excel文件,转化为一个二维数组:Object[][] arrays
但是excel中有空行,所以需要过滤Object[][] arrays中的空的一维数组:
Java代码
/***
* 过滤数组中的空元素
*
*
* @param arrays
* @return
*/
public static Object[][] filterEmpty(Object[][] arrays) {
int sumNotNull = 0;
/***
* 统计非空元素的总个数
*/
for (int i = 0; i arrays.length; i++) {
Object object = arrays[i];
if (!ValueWidget.isNullOrEmpty(object)
!SystemUtil.isNullOrEmpty((Object[]) object)) {// 判断元素是否为空
sumNotNull = sumNotNull + 1;
}
}
Object[][] filtedObjs = new Object[sumNotNull][];
int index = 0;
for (int i = 0; i arrays.length; i++) {
Object[] object_tmp = arrays[i];
if (!ValueWidget.isNullOrEmpty(object_tmp)
!SystemUtil.isNullOrEmpty((Object[]) object_tmp)) {// 判断元素是否为空
filtedObjs[index++] = object_tmp;
}
}
return filtedObjs;
}
判断对象的所有成员变量是否为空
Java代码
/***
* Determine whether the object's fields are empty
*
* @param obj
* @param isExcludeZero :true:数值类型的值为0,则当做为空;----false:数值类型的值为0,则不为空
*
* @return
* @throws SecurityException
* @throws IllegalArgumentException
* @throws NoSuchFieldException
* @throws IllegalAccessException
*/
public static boolean isNullObject(Object obj, boolean isExcludeZero)
throws SecurityException, IllegalArgumentException,
NoSuchFieldException, IllegalAccessException {
if(ValueWidget.isNullOrEmpty(obj)){//对象本身就为null
return true;
}
ListField fieldList = ReflectHWUtils.getAllFieldList(obj.getClass());
boolean isNull = true;
for (int i = 0; i fieldList.size(); i++) {
Field f = fieldList.get(i);
Object propertyValue = null;
try {
propertyValue = getObjectValue(obj, f);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
if (!ValueWidget.isNullOrEmpty(propertyValue)) {// 字段不为空
if (propertyValue instanceof Integer) {// 是数字
if (!((Integer) propertyValue == 0 isExcludeZero)) {
isNull = false;
break;
}
} else if (propertyValue instanceof Double) {// 是数字
if (!((Double) propertyValue == 0 isExcludeZero)) {
isNull = false;
break;
}
}else if (propertyValue instanceof Float) {// 是数字
if (!((Float) propertyValue == 0 isExcludeZero)) {
isNull = false;
break;
}
}else if (propertyValue instanceof Short) {// 是数字
if (!((Short) propertyValue == 0 isExcludeZero)) {
isNull = false;
break;
}
}else {
isNull = false;
break;
}
}
}
return isNull;
}
测试:
Java代码
@Test
public void test_isNullObject() throws SecurityException,
IllegalArgumentException, NoSuchFieldException,
IllegalAccessException {
Person2 p = new Person2();
Assert.assertEquals(true, ReflectHWUtils.isNullObject(p, true));
Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));
p.setAddress("beijing");
Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, true));
Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));
p.setAddress(null);
p.setId(0);
Assert.assertEquals(true, ReflectHWUtils.isNullObject(p, true));
Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));
}
Person2 源代码(省略getter,setter方法):
Java代码
import java.sql.Timestamp;
public class Person2 {
private int id;
private int age;
private double weight;
private String personName;
private Timestamp birthdate;
public String identitify;
protected String address;
String phone;
}
看了下代码,有2个逻辑错误
判断文件是否为空,使用readLine方法,如果返回null,表示为空
ready()表示文件是否准备完毕
if(!br.ready()) ////////文件为空
文件读入流后,一直处于准备中,因此程序不会进入if(!br.ready())语句
不清楚你的逻辑,只能部分修改你的代码,希望有帮助,代码和注释如下:
StringBuffer sb = new StringBuffer();
br = new BufferedReader(new FileReader(""));
while ((lineStr = br.readLine()) != null) { // 这里是第一次去,如:第1行
int i = 0;
while (i = lineStr.length() - 1) {
ch = lineStr.charAt(i);
if (ch == dyh.charAt(0)) {
sb.append(ch);
while (ischaracter) {
if (i == lineStr.length() - 1) {
}
if ((lineStr = br.readLine()) != null) { // 文件不为空:这个时候读取了下一行,针对上去是第2行
if (lineStr.trim().length() == 0) { // 去除空格后,长度等于0,表示这是个一空行
// 这是一个空行,加入你的逻辑
} else {
// 这行有内容,加入你的逻辑
}
} else {
// 这里是文件为空
// 加入你的逻辑
}
}
}
}
}