我正在尝试使用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)
答案 0 :(得分:4)
row1
或row1.B
(使用正确的大写!属性以小写字母开头)是null
更新:注意您的问题的评论,然后row1.B
为空。检查它并在((row1.B != null) && (....))
或((row1.B == null) || (...))
条件下控制它,或者(更可能)检查逻辑以为其分配适当的值。
答案 1 :(得分:0)
取消引用指向null的变量时会引发空指针异常。
在您的情况下,row1
或row1.B
为null
。
答案 2 :(得分:0)
最简单的方法是编写一个用户例程,然后在行输入上从tMap调用该函数。 例如。 userFunction(row1.B)
使函数输出您需要的任何字符串操作。 这也允许您处理Excel中B单元格为空的情况。你不能在tMap的单行中做到这一点。