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