2

我正在尝试使用 talend 检查第 4 个字符是否 = 4 然后我转换 S _ 如果不是我们保留输入文件的值是可以帮助我的 Excel 文件

 row1.B.charAt(4) == '4'? StringHandling.CHANGE(StringHandling.LEFT(row1.B,9) ,"_","S"):row1.B    

我有这个错误

[statistics] connected
Exception in component tMap_1
java.lang.NullPointerException
    at projectname.test_0_1.test.tFileInputExcel_2Process(test.java:1140)
    at projectname.test_0_1.test.runJobInTOS(test.java:1672)
    at projectname.test_0_1.test.main(test.java:1540)
4

3 回答 3

4

或者row1row1.B使用适当的大写字母!属性以小写开头)是null

更新:关于您的问题的评论,row1.B则为空。检查它并在条件下控制它,((row1.B != null) && (....))或者((row1.B == null) || (...))(更有可能)检查您的逻辑以为其分配适当的值。

于 2012-11-19T09:26:10.530 回答
0

当您取消引用指向 null 的变量时,会导致空指针异常。

在你的情况下,要么row1要么row1.Bnull

于 2012-11-19T09:27:54.520 回答
0

最简洁的方法是编写一个用户例程,然后在行输入上从 tMap 调用该函数。例如 userFunction(row1.B)

使函数输出您需要的任何字符串操作。这也允许您处理 Excel 中 B 单元格为空的情况。您不能在 tMap 的单行中做到这一点。

于 2012-11-20T22:56:02.283 回答