【问题标题】:Android unable to understand kotlin functionAndroid无法理解kotlin函数
【发布时间】:2021-11-05 18:38:00
【问题描述】:

我不太熟悉 Kotlin,在学习 Android 时我更喜欢 Java 而不是 Kotlin。但我被困在一段代码如下:

private fun getOutputDirectory(): File {
       val mediaDir = externalMediaDirs.firstOrNull()?.let {
           File(it, resources.getString(R.string.app_name)).apply { mkdirs() } }
       return if (mediaDir != null && mediaDir.exists())
           mediaDir else filesDir
}

以下函数在onCreate方法中被调用为var outputDirectory: File = getOutputDirectory();

你能帮我把代码转换成Java并理解它吗? 谢谢。

【问题讨论】:

  • 更好的选择是学习 Kotlin 的基础知识,因为它现在是 Android 开发的首选语言。很多新的博客和教程都在 kotlin 中,如果你正在尝试使用 Java,这对你来说会很困难。此外,还有一些 kotlin 特定的东西,比如 Jetpack Compose。
  • 从 kotlin 基础知识和这些概念开始理解代码 - “安全调用”和“作用域函数”。

标签: java android kotlin


【解决方案1】:
    private File getOutputDirectory() {
        File mediaDir = null;
        if (getExternalMediaDirs().size > 0) {
            mediaDir = new File(getExternalMediaDirs()[0], getResources().getString(R.string.app_name));
            mediaDir.mkdirs();
        }
        
        return if (mediaDir != null && mediaDir.exists())
         mediaDir
        else 
        filesDir
        
    }

【讨论】:

    【解决方案2】:

    这里是如何将 Kotlin 代码转换为 Java 代码的过程。 https://www.geeksforgeeks.org/how-to-convert-kotlin-code-to-java-code-in-android-studio/

    但我建议你学习 Kotlin,因为它更快,更适合 Android 应用开发。

    【讨论】:

    • 这会从字节码进行转换。在大多数情况下,它会比等效的 Java 代码更加复杂和怪异。
    猜你喜欢
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2020-12-29
    • 2012-11-21
    相关资源
    最近更新 更多