프로젝트에서 발생하는 NullPointerException은 두 가지 상황으로 구분됩니다.
1. 빈 객체를 참조합니다. 즉, 빈 객체의 메소드를 호출하거나 빈 객체의 속성을 참조합니다.
2. 8의 기본 유형의 캡슐화 클래스를 해당 기본 클래스에 할당합니다.
1. 획득한 객체가 비어 있는지 여부를 모르기 때문에 다른 사람의 인터페이스에서 반환된 객체에 대해 null이 아닌 판단을 내려야 합니다. Collection Map의 경우 일반적으로 CollectionUtils MapUtils를 호출합니다. 비어 있지 않은 판단을 수행하기 위해 StringUtils.isNotEmpty()를 호출합니다. 그 중 isNotEmpty는 NULL을 판단할 뿐만 아니라 빈 집합과 빈 문자열도 판단합니다. 예를 들어 데이터의 쿼리 결과입니다. 워크플로에 가격 URL이 반환되었습니다.
2. 생성한 객체에 대해 객체가 수행하는 작업과 중간에 객체가 비어 있는지 여부에 주의해야 합니다. 특히 수집 작업의 경우 null이 아닌 판단을 추가하면 보고하기 쉽습니다. 널 포인터! ! ! 그래서 컬렉션을 운영할 때마다 매우 조심하게 됩니다.
3. 포그라운드에 있는 필드 객체는 프레임워크에 의해 생성되므로 매우 주의하십시오. 포그라운드의 텍스트 상자에 값을 입력하지 않으면 제출 시 백엔드가 빈 문자열을 얻게 되지만, NullPointerException이 매우 높습니다.
4. 문자열 작업의 경우 Apache의 StringUtils 클래스를 사용해 보십시오. 문자열에 비해 매우 안전합니다. 수집 작업의 경우 Apache의 CollectionUtils 및 MapUtils를 사용합니다. Apache 도구 클래스와 비교하면 StringUtils.split()과 같이 실행 효율성도 매우 높습니다.
어떤 사람들은 너무 많은 판단이 성능에 영향을 미칠 것이라고 말합니다. 개인적으로 여기서 성능 희생은 시스템의 보안에 비해 미미하다고 생각합니다.