Vous pouvez définir une implémentation par défaut pour l'I / F de Kotlin, mais vous devez la définir à l'avance pour utiliser cette implémentation par défaut du côté Java. Cette fois, j'écrirai la méthode de réglage.
Ajout de -Xjvm-default = compatibilité
à l'argument où kotlin dans pom.xml est défini pour être compilé.
Exemple:
pom.xml
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<goals> <goal>compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/main/java</sourceDir>
</sourceDirs>
<args>
<arg>-Xjvm-default=compatibility</arg>
</args>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<goals> <goal>test-compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/test/java</sourceDir>
</sourceDirs>
<args>
<arg>-Xjvm-default=compatibility</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>
Décrire jvmTarget dans les propriétés Exemple:
pom.xml
<properties>
<jdk.version>1.8</jdk.version>
<encoding>UTF-8</encoding>
<kotlin.version>1.3.60</kotlin.version>
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
</properties>
@ JvmDefault
à la méthode que vous voulez que Java reconnaisse comme implémentation par défaut.C'est tout.
Recommended Posts