[android : kotlin] 코틀린 Nothing 사용방법 & 사용 예시
코틀린 Nothing 사용방법
Nothing 타입은 그 어떤 값도 포함하지 않으며, 그 어떤 객체도 반환하지 않는다. Nothing클래스를 열어보면 private constructor로 정의되어 있기 때문에 인스턴스를 생성할 수 없다. 그럼으로 인스턴스도 생성할 수 없고, 생성자도 접근할 수 없다.
Nothing 클래스는 모든 클래스의 하위 클래스이다.
/* * Copyright 2010-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package kotlin /** * Nothing has no instances. You can use Nothing to represent "a value that never exists": for example, * if a function has the return type of Nothing, it means that it never returns (always throws an exception). */ public class Nothing private constructor()
그렇다면 Nothing은 언제 사용하는 것일까? 오류를 처리하는 메서드 구현시 리턴 타입으로 Nothing을 사용할 수 있다.
fun main(args: Array<String>) { var x: String? = null //x = "test" val str = x ?: callFail("인자 값이 null입니다.") } fun callFail(msg: String) : Nothing { throw Exception(msg) }
[출력결과]
[REFERENCE]
kotlinlang.org/docs/reference/exceptions.html#the-nothing-type
kotlinlang.org/docs/reference/functions.html#unit-returning-functions
kotlinlang.org/docs/tutorials/kotlin-for-py/null-safety.html#elvis-operator
[더 보기]