广告
返回顶部
首页 > 资讯 > 精选 >java怎么判断integer是否为空
  • 860
分享到

java怎么判断integer是否为空

2023-07-05 04:07:13 860人浏览 薄情痞子
摘要

这篇文章主要介绍“java怎么判断integer是否为空”,在日常操作中,相信很多人在java怎么判断integer是否为空问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么判断integer是否为空

这篇文章主要介绍“java怎么判断integer是否为空”,在日常操作中,相信很多人在java怎么判断integer是否为空问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么判断integer是否为空”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

注意表达式的返回值

我们在使用jdk库的时候,一定要注意认真的读一下JDK中方法的含义和它的返回值。

有些返回值可能表示这个操作是否成功,有的返回值可能是方法操作的结果。我们看两个常见的例子:

public void deleteFileWrong(){        File file= new File("/tmp/www.flydean.com.txt");        file.delete();        System.out.println("File delete success!");    }     public void deleteFileRight(){        File file= new File("/tmp/www.flydean.com.txt");        if(file.delete()){            System.out.println("File delete success!");        }    }

先看一个文件删除的例子,delete方法是有返回值的,所以我们在调用delete方法之后,一定要判断一下返回值,看是否删除成功。

再看一个常见的String中字符替换的例子:

public void stringReplaceWrong(){        String url="www.flydean.com";        url.replace("www","WWW");        System.out.println("replaced url..."+url);    }    public void stringReplaceRight(){        String url="www.flydean.com";        url=url.replace("www","WWW");        System.out.println("replaced url..."+url);    }

我们要记住,String是不可变的,所以它的replace方法,会返回一个替换过后的String,但是原String是不变的,所以我们需要将返回值重新赋值。

注意避免NullPointerException

NullPointerException应该是最最常见的运行时异常了。怎么避免这个异常呢?

我们要做的就是在调用object的方法时候,一定要判断这个object是不是为空。

在JDK8之后,我们引入了Stream操作:

public void streamWrong(Collection<Object> collection){        collection.stream().filter(obj->obj.equals("www.flydean.com"));    }

Stream操作的过程中,我们需要注意stream中的元素是否为空。

有时候,我们可能觉得已经判断是为空了,但是条件判断不准确,导致未知的异常,看下面这个例子:

public int countWrong(Collection<Object> collection, Object object){        int count=0;        if(collection ==null){            return count;        }        for(Object element: collection){            if((element ==null && object== null)                || element.equals(object)){                count++;            }        }        return count;    }

这个例子是用来查找collection中到底有多少元素和object相同,如果两者都为空,也记为相同。

但是上面的例子有一个漏洞,它没有考虑element ==null 而 object !=null的情况,所以会导致NullPointerException的生成。

我们需要这样修改:

public int countRight(Collection<Object> collection, Object object){        int count=0;        if(collection ==null){            return count;        }        for(Object element: collection){            if((element ==null && object== null)                    || (element !=null && element.equals(object))){                count++;            }        }        return count;    }

数组相等的判断

如果我们需要比较两个数组是否相等,其实我们想比较的是两个数组中的元素是否相等。

我们知道数组是一个特殊的Object,那么数组对象也有一个equals方法,考虑下面的例子:

public boolean compareWrong(){        int[] array1 = new int[10];        int[] array2 = new int[10];        return array1.equals(array2);    }

返回的结果是false,因为数组直接使用了Object中定义的equals方法,我们看下该方法的定义:

public boolean equals(Object obj) {        return (this == obj);    }

可以看到,该方法比较的是两个地址是否相等。所以我们的到了false结果。

其实,我们可以使用Arrays.equals工具类中的方法来进行两个数组的比较:

Boolean boolA=true;        Boolean boolB=true;        System.out.println(boolA==boolB);

基础类型的封装类间的比较

在java中,我们知道有一些基础类型像boolean, byte,char, short, int他们会有相对应的封装类型:Boolean,Byte,Character,Short,Integer等。

我们可以直接将基础类型的值赋值给封装类型,封装类型会自行进行转换。

考虑下面的例子:

Boolean boolA=true;        Boolean boolB=true;        System.out.println(boolA==boolB);

结果是多少呢?

答案是true。为什么两个不同对象的比较会是true呢?

在回答这个问题之前,我们看一下字符串的比较:

String stringA="www.flydean.com";        String stringB="www.flydean.com";        System.out.println(stringA==stringB);

这个我们大家应该都知道,因为String有一个字符串常量池,直接从字符串常量构建的String对象,其实是同一个对象。

同样的对于Boolean和Byte来说,如果直接从基础类值构建的话,也是同一个对象。

而对于Character来说,如果值的范围在u0000 to u007f,则属于同一个对象,如果超出了这个范围,则是不同的对象。

对于Integer和Short来说,如果值的范围在-128 and 127,则属于同一个对象,如果超出了这个范围,则是不同的对象。

再考虑下面的例子:

Boolean boolA=true;Boolean boolC=new Boolean(true);System.out.println(boolA==boolC);

输出的结果是false,因为boolC使用了new关键字,构建了一个新的对象。

集合中类型不匹配

现在java集合可以通过指定类型,从而只存储特定类型的对象。考虑下面的一个例子:

public void typeMismatch(){        HashSet<Short> shortSet= new HashSet<>();        for(int i=0;i<10;i++){            shortSet.add((short)i);            shortSet.remove(i);        }        System.out.println(shortSet.size());    }

上面代码我们定义了一个Short的集合,然后将0-9添加进去,接着我们又调用了remove方法把i从集合删除。

但是最后输出结果是10,表明我们并没有删除成功。为什么呢?

看下HashSet的remove方法:

public boolean remove(Object o) {        return map.remove(o)==PRESENT;    }

remove方法的参数是Object,我们传入的i是int类型的,跟short不匹配,所以导致删除失败。

我们需要这样修改:

public void typeMatch(){        HashSet<Short> shortSet= new HashSet<>();        for(int i=0;i<10;i++){            shortSet.add((short)i);            shortSet.remove((short)i);        }        System.out.println(shortSet.size());    }

Asset的副作用

我们会使用Asset语句在代码中做调试使用,在使用的过程中需要注意Asset语句不要对系统的业务逻辑产生副作用,也就是说即使Asset语句不运行,也不会修改代码的业务逻辑。

看下面的例子:

public void assetWrong(ArrayList<Integer> list){        assert  list.remove(0)>0;    }

上的代码我们从list中删除第一个元素,并判断删除的元素是否大于0.

上面的代码如果assert语句不执行的话,会导致业务逻辑也不执行,所以需要修改成下面这样:

public void assetRight(ArrayList<Integer> list){        int result=list.remove(0);        assert  result>0;    }

补充:java中判断变量非空

当判断的变量为数值型时(integer)

先判断是否为空  在判是否为零

if (id != null && id != 0) {   return false;//不为空          }

当判断的变量为字符串时时(String)

Strings.isNotBlank(name){    return false;//不为空}

当判断的变量为对象时(people)

!Objects.isNull(easyData){    return false;//不为空}

当判断的变量为集合时(Lsit)

CollectionUtils.isEmpty(list){    return true;//为空}Integer id = 0;String name = null;public class People {}List<Object> list = new ArrayList<>();

到此,关于“java怎么判断integer是否为空”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: java怎么判断integer是否为空

本文链接: https://www.lsjlt.com/news/349500.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java怎么判断integer是否为空
    这篇文章主要介绍“java怎么判断integer是否为空”,在日常操作中,相信很多人在java怎么判断integer是否为空问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么判断integer是否为空...
    99+
    2023-07-05
  • java怎么判断bigdecimal是否为空
    在Java中,判断BigDecimal是否为空可以通过以下两种方法:1. 使用compareTo()方法:将BigDecimal对象...
    99+
    2023-09-14
    java
  • Java怎么判断List是否为空
    本篇内容主要讲解“Java怎么判断List是否为空”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么判断List是否为空”吧!一个问题我们有一个函数,返回的是一个Panel Listpu...
    99+
    2023-06-29
  • Java中怎么判断是否为空
    这篇文章给大家介绍Java中怎么判断是否为空,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerExcepti...
    99+
    2023-06-16
  • java怎么判断实体是否为空
    在Java中,可以使用以下方法来判断实体是否为空: 使用null检查:使用if语句来判断实体是否为null。 if (entit...
    99+
    2023-10-24
    java
  • java怎么判断参数是否为空
    在Java中,可以使用条件语句和判断语句来判断参数是否为空。以下是几种常见的判断参数是否为空的方法: 使用if语句判断参数是否为...
    99+
    2023-10-24
    java
  • java怎么判断列表是否为空
    在Java中,可以使用以下方式来判断一个列表是否为空: 使用size()方法:通过调用列表的size()方法,如果返回值为0,则表...
    99+
    2023-10-24
    java
  • java中数组是否为空怎么判断?
    java中判断数组是否为空的方法如下:一维数组// 一维数组: int[] array if(array == null || array.length == 0) return true;二维数组//二维数组: int[][] arra...
    99+
    2015-11-18
    java基础 java 数组
  • java中怎么判断对象是否为空
    java中判断对象是否为空的方法:首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。这两种StringUtils工...
    99+
    2016-03-01
    java
  • java字符串怎么判断是否为空?
    java判断字符串是否为空的方法方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:if(s == null || s.equals(""))方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:if(s == null ...
    99+
    2017-12-22
    java教程 java 字符串
  • java判断文件是否为空
    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。在File类中并没有提供判断文件是否为空的方法,但可以借助length()方法的返...
    99+
    2018-03-17
    java基础 java
  • java判断变量是否为空
    java判断变量是否为空1、判断字符串或者对象是否为空首先来看一下工具StringUtils的判断方法: a) org.apache.commons.lang3包下的StringUtilsStringUtils.isEmpty(CharSe...
    99+
    2015-05-06
    java基础 java 为空判断
  • java判断对象是否为空
    对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序...
    99+
    2018-09-04
    java
  • Java中判断Integer是否为null的详细解析
    简介 在java编写过程中,我们会使用到各种各样的表达式,在使用表达式的过程中,有哪些安全问题需要我们注意的呢?一起来看看吧。 来看看小编挑选的这本书对你是否有用: 注意表达式的返回值 我们在使用JD...
    99+
    2023-09-02
    java servlet 开发语言
  • jsp怎么判断session是否为空
    在JSP中,可以使用如下方法来判断session是否为空:1. 使用JSTL标签库:```jsp...Session为空Sessio...
    99+
    2023-08-18
    jsp session
  • java中怎么判断字符串是否为空
    java判断字符串是否为空的方法:首先,区分空串和null串 空串""是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法:if (str.length() == 0);或if (str.equals(""));...
    99+
    2020-10-27
    java
  • java中判断数组是否为空
    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。java判断数组是否为空:public class Main { public...
    99+
    2020-06-15
    java基础 java
  • java如何判断list是否为空?
    java判断集合list是否为空的方法:如果想判断list是否为空,可以这么判断:if(list == null || list.size() ==0 ){   //为空的情况 }else{   //不为空的情况 }list.isEmpty...
    99+
    2019-07-11
    java教程 java
  • vba怎么判断数组是否为空
    在VBA中,可以使用`IsArrayEmpty`函数来判断一个数组是否为空。下面是一个示例代码:```vbaSub CheckArr...
    99+
    2023-09-26
    vba
  • wordpress怎么判断字段是否为空
    在WordPress中,可以使用`empty()`函数来判断字段是否为空。`empty()`函数可以判断一个变量是否为空,包括空字符...
    99+
    2023-08-15
    wordpress
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作