2012-11-19 2 views
2

내가하지 않을 경우 4 문자 = 4 그때 변환 S가 _ 우리가 값을 유지하는 경우 입력 파일은 엑셀 을 파일 확인 talend를 사용하는 것을 시도하고있는 사람이 나에게수 charAt : 오류 java.lang.NullPointerException이

을 도울 수
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

'row1'과'row1.B'가 null인지 확인하십시오. 만약 내가 StringHandling.CHANGE (StringHandling.LEFT (row1.B, 9), "_", "S") 코드를 변경하면 – Jaguar

+0

작동하지만 row1.B.charAt (4) == '4'dosen ' T는 작동합니다 : (StringHandling.LEFT (row1.B, 9), "_", "S") 코드를 변경하면 – user91599

답변

4

어느 row1 또는 row1.B (적절한 캡을 사용! 속성은 소문자로 시작) null

입니다에게 있습니다

업데이트 : 질문에 대한 의견을 말씀하신 후 row1.B이 (가) null입니다. 그것을 점검하고 조건 ((row1.B != null) && (....)) 또는 ((row1.B == null) || (...))에서 제어하거나 로직을 점검하여 적절한 값을 지정하십시오.

+0

작동하지만 row1.B.charAt (4) == ' 4 'dosen't 작품 : ( – user91599

+0

그 작품 덕분에 – user91599

0

널 포인터 예외는 널 (null)을 가리키는 변수를 참조 해제 할 때 발생합니다.

row1 또는 row1.Bnull입니다.

0

가장 간단한 방법은 사용자 루틴을 작성한 다음 행 입력의 tMap에서 함수를 호출하는 것입니다. 예. userFunction (row1.B)

필요한 모든 문자열 조작을 함수 출력으로 설정하십시오. 또한 Excel의 B 셀이 null 인 경우를 처리 할 수 ​​있습니다. 당신은 맵의 한쪽 라이너에서 그렇게 할 수 없습니다.

관련 문제