Android view!!와 requireView 차이

98oys·2022년 5월 19일
0

안드로이드

목록 보기
9/20

😛차이점 : null 처리 여부

navigate 기능을 사용할 때 Fragment에서 view!!.findNavController().navigate()를 사용한 적이 있습니다.

느낌표 두 개를 매번 사용하는 것이 어색하다고 생각했고😅, view 함수 내부를 살펴보았습니다.

getView는 View Type인 mView를 반환합니다.

Get the root view for the fragment's layout (the one returned by onCreateView), if provided.
Returns:
The fragment's root view, or null if it has no layout.

@Nullable
    public View getView() {
        return mView;
    }

프래그먼트의 부모 뷰를 반환하는 함수인 것 같습니다.

Get the root view for the fragment's layout (the one returned by onCreateView).
Throws:
IllegalStateException – if no view was returned by onCreateView.
See Also:
getView()

@NonNull
    public final View requireView() {
        View view = getView();
        if (view == null) {
            throw new IllegalStateException("Fragment " + this + " did not return a View from"
                    + " onCreateView() or this was called before onCreateView().");
        }
        return view;
    }

함수 내부 getView() 바로 아래에 null 체크해주는 requireView 함수가 있습니다😊

항상 navigation 기능을 사용할 때 view를 사용할 때 null처리를 하지 않으면 안드로이드 스튜디오가 아래와 같은 에러 메시지를 보여줍니다.
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type View?

앞으로는 편하게 requireView()를 사용해야겠습니다😎

profile
Android Developer, Department of Information and Communication Engineering, Inha University

0개의 댓글