Talend中tMap条件映射String转Boolean遇空指针问题求助
问题分析与解决方案
你的公式触发java.lang.NullPointerException的核心原因是Categorie列存在null值,直接对null执行字符串比较操作会引发空指针异常。同时原公式未覆盖规则里Start UP(大小写变体)的匹配需求,会导致这类场景返回错误结果。
错误原因拆解
当inputrow.Categorie为null时,执行inputrow.Categorie != "Start Up"相当于让null对象与字符串做比较,Java不允许对null对象进行这类直接操作,因此抛出空指针异常。另外原公式仅匹配严格的Start Up字符串,无法识别大小写不同的Start UP,不符合你的映射规则。
正确的tMap公式
可以借助Talend内置的StringHandling工具类,同时处理null值与大小写不敏感匹配的需求:
inputrow.Categorie == null ? false : StringHandling.equalsIgnoreCase(inputrow.Categorie, "Start Up")
或更简洁的写法(StringHandling.equalsIgnoreCase本身会处理null场景,当参数为null时直接返回false):
StringHandling.equalsIgnoreCase(inputrow.Categorie, "Start Up")
规则匹配验证
这个公式完全贴合你的预期规则:
- 当Categorie为
Bank/Manifacturing/null时,返回false - 当Categorie为
Start Up或Start UP时,返回true
内容的提问来源于stack exchange,提问作者user15915737
相关产品推荐
相关产品推荐

