gpt4 book ai didi

kotlin - KotlinNullPointerException 和 Java 的 NullPointerException 有什么区别

转载 作者:行者123 更新时间:2023-12-04 18:55:23 27 4
gpt4 key购买 nike

由于 Kotlin 不允许隐式空值/变量,是 KotlinNullPointerException引入以明确表示 NPE!! 引起?这就是NullPointerException这个子类的唯一目的吗? ?

最佳答案

KotlinNullPointerException 之间没有真正的区别和 JavaNullPointerException .

方法如下:
KotlinNullPointerExceptionopen扩展 NullPointerException 的类现在这个 NullPointerExceptiontypealiasjava.lang.NullPointerException .

public open class KotlinNullPointerException : NullPointerException {
constructor()

constructor(message: String?) : super(message)
}

这是从 TypeAlias.Kt 中提取的一行
@SinceKotlin("1.1") public actual typealias NullPointerException = java.lang.NullPointerException

现在,如果我们看到 java.lang.NullPointerException 的声明, 我们被带到 Java.lang扩展 RuntimeException 的类.
public
class NullPointerException extends RuntimeException {
private static final long serialVersionUID = 5162710183389028792L;

/**
* Constructs a {@code NullPointerException} with no detail message.
*/
public NullPointerException() {
super();
}

/**
* Constructs a {@code NullPointerException} with the specified
* detail message.
*
* @param s the detail message.
*/
public NullPointerException(String s) {
super(s);
}
}

在 Kotlin 中,要声明一些可空类型,您必须通过附加 ? 来明确允许它。在声明类型的末尾。例子:
var nullableString: String? = null

这是一个简单的说法,这个变量可以在任何时候为空,所以如果你试图从代码的任何部分访问这个变量,它会抛出错误并迫使你采取措施防止 NPE要么使用 !! (如果为空则崩溃)或 ? (如果为空则跳过)。
这只是让它看起来更像“Kotlin”的一种方式。

关于kotlin - KotlinNullPointerException 和 Java 的 NullPointerException 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com