私は Kotlin の真の初心者で、デモを始めたばかりです。
問題の解決策は簡単ですが、バグがあります
private fun assertEquals<T>(actual : T?, expected : T?, message : Any? = null) {
if (actual != expected) {
errors++
println("Test failed")
val trace = Thread.currentThread()?.getStackTrace()!!
if (trace.size > 6) {
// Finding relevant stack frames
val location = trace.getFrameAfter("runs.Tester", "expect") // ERROR HERE
val function = trace.getFrameAfter("runs.TesterRunner", "forFunction") // AND HERE
println("at ${function?.getClassName()}.${function?.getMethodName()}(line:${location?.getLineNumber()})")
}
if (message != null)
println(message)
}
else if (!skipSuccessful)
println("OK")
}
わかりません。それは言う
Type mismatch: inferred type is kotlin.Array<java.lang.StackTraceElement> but
kotlin.Array<java.lang.StackTraceElement?> was expected
そして、前者がどのように推測されたのか、なぜ後者が予想されるのか、私にはわかりません。特に、1 つのメソッド呼び出しから 2 つのそのような仮定がどこから来るのかわかりません。
問題のある行を削除して「修正」しましたが、誰かが私を啓発できると確信しています。