Kotlin

[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

[더 보기]

Leave a Reply

error: Content is protected !!