Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str

这篇具有很好参考价值的文章主要介绍了Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明:

这个异常意味着你尝试在Java程序中比较一个java.util.Date对象和一个java.lang.String对象,这是无效的比较。Java中的不同类型的对象只能在特定的比较操作中使用。通常,日期对象被用于表示日期和时间信息,而字符串对象用于表示文本信息。因此,Java不允许直接将它们进行比较。

错误原因一:

在Mapper文件中,你对Date数据进行了比较,

错误代码:

Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str,错误解析,java,jvm,servlet

 时间类型属性值,可以进行判空,但是不能跟字符串比较

conditionDTO.time==''解释:时间类型跟空字符串比较,所以会出现报错

错误一解决:

删除conditionDTO.time==''

 <if test="conditionDTO.time!=null">
      and t.time &lt; #{conditionDTO.startDate,jdbcType=TIMESTAMP}
</if>
<if test="conditionDTO.time!=null">
       and t.time &gt; #{conditionDTO.startDate,jdbcType=TIMESTAMP}
</if>

Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str,错误解析,java,jvm,servlet

 

错误原因二:

 Java代码种时间类型数据直接跟字符比较

 public static void main(String[] args) {
        Date date = new Date();
        String str = "2022-03-08";

        // 尝试比较Date对象和String对象
        if (date.compareTo(str) > 0) {
            System.out.println("Date is after String.");
        } else if (date.compareTo(str) < 0) {
            System.out.println("Date is before String.");
        } else {
            System.out.println("Date is equal to String.");
        }
    }

当你尝试在不同类型的对象之间进行比较时,会抛出IllegalArgumentException异常。具体来说,如果你尝试将java.util.Date对象和java.lang.String对象进行比较,就会出现这个异常。 

错误二解决:

为了解决这个问题,需要将String对象转换为Date对象,然后进行比较。这可以通过使用SimpleDateFormat类将字符串解析为日期来实现。例如,以下代码演示了如何将字符串“2022-03-08”转换为日期对象:

 public static void main(String[] args) throws Exception {
        Date date = new Date();
        String str = "2022-03-08";

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date strDate = formatter.parse(str);

        // 现在可以将两个Date对象进行比较
        if (date.compareTo(strDate) > 0) {
            System.out.println("Date is after String.");
        } else if (date.compareTo(strDate) < 0) {
            System.out.println("Date is before String.");
        } else {
            System.out.println("Date is equal to String.");
        }
    }

可以使用compareTo()方法比较两个Date对象,而不会抛出IllegalArgumentException异常。

热爱的事情:手很忙碌,心很快乐。文章来源地址https://www.toymoban.com/news/detail-591918.html

到了这里,关于Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 解决java.lang.IllegalArgumentException异常的正确解决方法

    java.lang.IllegalArgumentException 是 Java 编程语言中的一个运行时异常,通常表示向方法传递了一个不合法或不适当的参数。当程序在运行时遇到此类异常,它会立即中断当前的执行流程,并抛出异常信息。理解这个异常的原因并学会如何正确解决,对于编写健壮的 Java 程序至关重

    2024年04月25日
    浏览(12)
  • org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:

    org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:

    ES进入bin文件夹启动elasticsearch.bat文件后出现 org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version Caused by: java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 7.17.4 but version 7.16.2 is running java.lang.IllegalArgum

    2024年02月11日
    浏览(49)
  • java.lang.IllegalArgumentException: bound must be positive

    IllegalArgumentException 是Java中的一个异常类,用于在方法中传递非法的参数值时抛出。具体的错误信息 bound must be positive 表示传入的参数边界必须是一个正数。 在Java中,一些方法或构造函数要求参数值是正数。如果传入了负数或零,就会抛出这个异常。要解决此问题,您需要检

    2024年02月04日
    浏览(43)
  • 记报错信息:java.lang.IllegalArgumentException: MALFORMED解决方案

    在调用JDK自带的zipfile读取压缩包文件的时候,出现了以下错误: SjXcmcFeignClient:124 - BaseFeignClient 拦截到【未知系统异常】Exception异常: java.lang.IllegalArgumentException: MALFORMED[1] at java.util.zip.ZipCoder.toString(ZipCoder.java:65) at java.util.zip.ZipFile.getZipEntry(ZipFile.java:583) at java.util.zip.ZipFile.ac

    2024年02月05日
    浏览(48)
  • Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang

    Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang

    问题:使用spring-mvc进行获取前端参数时报错 具体报错如下: 我使用的是最新版的6.1.4版本的spring-webmvc,传参方式如下 按道理按照之前的写法,就算是没有加@RequestParam注解,这样子也不会报错,很奇怪。 后面发现这是新版本的问题,可能是新版的webmvc改了吧,简单类型应该

    2024年04月15日
    浏览(49)
  • java.lang.IllegalArgumentException: Source must not be null

    这个错的意思是:报这个错是因为在cope的时候参数为空 这种情况下已经都做了非空判断但是还依然会报错,是因为自己虽然查出来的数据为null,但是只要重新new一下就可以

    2024年02月13日
    浏览(83)
  • 已解决java.lang.IllegalArgumentException异常的正确解决方法,亲测有效!!!

    已解决java.lang.IllegalArgumentException异常的正确解决方法,亲测有效!!! java.lang.IllegalArgumentException java.lang.IllegalArgumentException是Java中的一个异常,表示传递给方法的参数不合法。 下滑查看解决方法 这个异常通常在方法内部检查参数的有效性时抛出。要解决这个问题,你可以

    2024年02月04日
    浏览(48)
  • java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified问题

    java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified问题

    问题如图: 1.问题描述 IllegalArgumentException 顾名思义,非法参数异常(差点看出来了,但凡我英文好点......) Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either. 未指定 [java.lang.String] 类型的参数的名称,并且在类文件中也找不到参数名称

    2024年03月13日
    浏览(45)
  • Java报错:java.lang.IllegalArgumentException: Source must not be null

    Java报错:java.lang.IllegalArgumentException: Source must not be null

    运行项目的时候,突然暴了这么一个错,通过debug进行调试以后发现是:  前端传递过来的id不对,后两位自动归0了,通过已经归0的id,显然不可以查询到后端的数据。 经过检查,发现是在使用mybatis-plus的时候,id是使用雪花算法自动生成19位数字,传给前端会通过json序列化

    2024年01月20日
    浏览(46)
  • Cause: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long错误的详细解决方法

    Cause: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long错误的详细解决方法

    今天写好 hive表导入的回调 的接口,如下代码所示: 启动 postman 访问该接口,确报出如下错误: 即 Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long 根据 java.lang.ClassCastException 可知,这是 java 类型转换的异常错误。 其次,再将错误信息 java.lang.String cannot b

    2024年02月13日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包