【问题标题】:Is it possible in one Java file to mix Java code and Kotlin code是否可以在一个 Java 文件中混合 Java 代码和 Kotlin 代码
【发布时间】:2019-07-12 14:45:28
【问题描述】:

Android Studio 3.4.2

在 build.gradle 中:

buildscript {
    ext.kotlin_version = '1.3.41'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

在 app/build.gradle 中:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.29.0'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'

在我的 android 项目中,我有 java 类的活动 - LoginActivity.java

导入android.app.Activity; 导入android.os.Bundle;

public class LoginActivity extends Activity{

private void testJavaMethod() {
    // this ia a java code
    String testJava = "Hello Java world";
}

private void testKotlinMethod() {
    // this ia a Kotlin method
    val testKotlin = "Hello Kotlin world"
}

在方法 testJavaMethod() 中成功编译。 但是testKotlinMethod() 不能编译。

这一行有错误:

    val testKotlin = "Hello Kotlin world"

错误信息: 无法解析符号“val”

问题是:

JAVA 文件中的 Android 项目是否有可能在 Java 上写入一个方法,而在 Kotlin 上写入另一个方法?

【问题讨论】:

  • ...Java 是 Java,Kotlin 是 Kotlin。虽然这样做在技术上可行,但您需要有一个统一解析和字节码生成的机制。即使这任何人都感兴趣的事情,在一个文件中混合两种语言也会非常令人困惑。我什至不清楚你为什么想要这样的东西。

标签: android kotlin kotlin-android-extensions


【解决方案1】:

在Java文件中的Android项目中是否有可能有一个方法写在Java上,另一个方法写在Kotlin上?

不,对不起。源文件是 Java 或 Kotlin,而不是两者的混合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 2014-08-28
    相关资源
    最近更新 更多