0
Exceptions.kt內聯函數:呼叫科特林從Java
@Suppress("NOTHING_TO_INLINE")
inline fun generateStyleNotCorrectException(key: String, value: String) =
AOPException(key + " = " + value)
在科特林:
fun inKotlin(key: String, value: String) {
throw generateStyleNotCorrectException(key, value) }
它工作在科特林和內聯函數。
但在Java代碼中使用時,它只是不能被內聯, 和仍然正常的靜態方法調用(從反編譯的內容所示)。
事情是這樣的:
public static final void inJava(String key, String value) throws AOPException {
throw ExceptionsKt.generateStyleNotCorrectException(key, value);
// when decompiled, it has the same contents as before , not the inlined contents.
}
爲什麼會首先期望Java編譯器可以神奇地內聯函數? Java知道Java方法。它應該如何知道其他語言的概念? – GhostCat