当前位置: 首页 > 知识库问答 >
问题:

Cassandra UDF:检查空值时出错

锺离逸春
2023-03-14
CREATE FUNCTION myspace.getValue(lng bigint, dbl double, etc double) RETURNS NULL ON NULL INPUT RETURNS double LANGUAGE java AS 'if (lng != null) {return (double)lng;} else if (dbl != null) { return dbl;} else return etc;';

我得到这个错误:

InvalidRequest:服务器错误:code=2200[无效查询]消息="Java源代码编译失败:
第1行:运算符!=对于参数类型long, null
第1行:运算符!=对于参数类型long, null未定义"

而在手册中,这些比较似乎是可以的(例如这里)。我使用的是Cassandra 4.0.3(通过docker图像)。

共有1个答案

徐涵亮
2023-03-14

Doublelong是Java中的原始类型,不能是null,这需要从Object类继承值。根据定义,这些类型的值不能是null。您可以删除这些检查

 类似资料:
  • 在执行某个操作之前,我正在检查 null,但我遇到了一些问题。以下是代码: 我在点 c.size() != null 处得到一个“运算符 != 未定义参数类型int,null”。我知道 size 方法的返回类型是整数,这就是我收到此错误的原因吗?希望有人能提供建议。谢谢。

  • DescriptionServer遇到了一个内部错误(),它无法满足此请求。 例外 jasperException:java.lang.NullPointerException根本原因 NullPointerException

  • 想象一下我有一个阶级家庭。它包含一个人员列表。每个(班级)人都有一个(班级)地址。每个(类)地址都包含一个(类)邮政编码。任何“中间”类都可以为空。 那么,有没有一种简单的方法可以在不必在每一步都检查null的情况下访问PostalCode?i、 例如,有没有办法避免以下菊花链代码?我知道没有“原生”Java解决方案,但我希望如果有人知道某个库或其他东西。(已选中Commons 不,不能改变结构。

  • 我在运行时遇到一个错误。使用if语句检查是否为空时会导致此错误。

  • 我用百里香模板发送电子邮件。我有一个模板,比如: 如果为空或,我不想发送电子邮件。我可以设置任何Thymeleaf属性来生成错误并且不会发送邮件吗?因为在没有值的电子邮件中发送“My name is”没有任何意义。 我从Thymeleaf上下文中获取所有值,变量可能是不同类型的,例如、等。我也尝试了以下方法,但它并没有解决我的问题,因为对象总是可用的:

  • 错误:关系“test”的新行违反了检查约束“test_status_check”详细信息:失败的行包含(5,2015-07-21,15:00:00,I7,9,NULL,NULL)。