이 글에서는 주로 Java8의 Optional 유형과 Kotlin의 nullable 유형 사용을 비교하여 소개합니다. 이 글은 모든 사람의 학습이나 작업에 대한 특정 참고 학습 가치를 제공합니다. 필요한 친구분들은 에디터를 따라가서 함께 배워보세요.
이 글은 주로 Java8의 Optional 유형과 Kotlin의 nullable 유형 사용에 대한 관련 내용을 소개합니다. 참고 및 학습을 위해 공유됩니다. 아래에서는 자세한 소개를 살펴보겠습니다. :
Java 8에서는 Optional 유형을 사용하여 nullable 유형을 표현할 수 있습니다.
package com.easy.kotlin; import java.util.Optional; import static java.lang.System.out; /** * Optional.ofNullable - 允许传递为 null 参数 * Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException * Optional<String> b = Optional.of(s); */ public class Java8OptionalDemo { public static void main(String[] args) { out.println(strLength(Optional.of("abc"))); out.println(strLength(Optional.ofNullable(null))); } static Integer strLength(Optional<String> s) { return s.orElse("").length(); } }
실행 출력:
3 0
그러나 이러한 코드는 여전히 그다지 우아하지 않습니다.
Groovy는 안전한 속성/메서드 액세스 연산자를 제공합니다. ?.
user?.getUsername()?.toUpperCase();
Swift에도 유사한 구문이 있으며 이는 Optional 유형에서만 작동합니다.
Kotlin의 Nullable 유형
위의 Java 8 예제는 Kotlin으로 작성했을 때 더 간단하고 우아합니다.
package com.easy.kotlin fun main(args: Array<String>) { println(strLength(null)) println(strLength("abc")) } fun strLength(s: String?): Int { return s?.length ?: 0 }
그 중에서 Optional<String>
의 의미도 표현하는 String?을 사용합니다. 더 간단하게?
한 눈에 명확합니다.
Java 8 Optional에서 제공하는 orElse
s.orElse("").length();
도 있습니다. 이것은 Kotlin에서 가장 일반적인 Elvis 연산자입니다.
s?.length ?: 0
에 비해 계속 사용하는 이유는 무엇입니까? Java 8의 Optional에 대해?
Kotlin의 별 기호
?????????????????????????????????????? ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.
위 내용은 Java8의 Optional 사용과 Kotlin의 nullable 유형 사용에 대한 비교 세부정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!