Comment utiliser la fonction implémentée dans l'interface de Kotlin introduite dans Maven comme implémentation par défaut de Java 8

Aperçu

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.

supposition

Méthode de réglage

① Paramètres du plug-in Kotlin

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>

(2) Ajoutez l'annotation @ JvmDefault à la méthode que vous voulez que Java reconnaisse comme implémentation par défaut.

C'est tout.

Recommended Posts

Comment utiliser la fonction implémentée dans l'interface de Kotlin introduite dans Maven comme implémentation par défaut de Java 8
[Traitement × Java] Comment utiliser la fonction
Comment utiliser ArgumentMatchers tels que Mockito's any () dans Kotlin
Comment utiliser les classes en Java?
Comment utiliser MinIO avec la même fonction que S3 Utiliser docker-compose
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
[Java] Comment utiliser la classe File
[Java] Comment utiliser la méthode toString ()
Etudier comment utiliser le constructeur (java)
[Java] [Maven3] Résumé de l'utilisation de Maven3
[Traitement × Java] Comment utiliser la classe
Comment obtenir la date avec Java
[Java] Comment utiliser la classe Calendar
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Ce que je n'aime pas lors de l'utilisation de l'interface d'une fonction avec des arguments par défaut dans Kotlin depuis Java
Comment obtenir une classe depuis Element en Java
Comment utiliser la méthode replace () (Java Silver)
Comment écrire Java String # getBytes dans Kotlin?
[Java] Comment omettre le constructeur privé dans Lombok
Comment écrire Scala du point de vue de Java
[Java] Comment extraire le nom du fichier du chemin
Résumé de la mise en œuvre des arguments par défaut en Java
Remarques sur l'utilisation des expressions régulières en Java
Résumé de l'utilisation du jeu de proxy dans IE lors de la connexion avec Java
Comment obtenir le nom d'une classe / méthode exécutée en Java
Comment utiliser la méthode getter / setter (en orientation objet)
Comment utiliser Maven pour placer des fichiers de ressources en dehors de JAR
Comment utiliser le modèle entraîné Tensorflow 2.0 avec Kotlin / Java
Comment utiliser les données JSON dans la communication WebSocket (Java, JavaScript)
Comment créer une partie d'espace réservé à utiliser dans la clause IN
Comment stocker des chaînes de ArrayList à String en Java (personnel)
Comment obtenir les informations les plus longues de Twitter à partir du 12/12/2016
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment utiliser le type d'énumération Java (Enum) dans Mapper XML de MyBatis
Implémenter la même fonction que C, système C ++ ("cls"); en Java
Comment dériver le dernier jour du mois en Java
Comment changer Java à l'ère d'OpenJDK sur Mac
[Java] Comment utiliser Map
Comment utiliser java Facultatif
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
Comment utiliser Java Map
Comment utiliser les variables Java
Comprendre comment la programmation fonctionnelle a été introduite dans Java d'un seul coup
Comment essayer la fonction de prévisualisation Java (telle que Java 15 Record) avec IntelliJ
Pour utiliser l'outil de ligne de commande "java" ... Comment éviter d'apparaître
Comment exécuter l'exemple Kotlin Coroutine à partir de la ligne de commande
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
L'opérateur qui est né pour naître, instanceof (Java) ~ Comment utiliser l'opérateur instanceof ~
[Java] Comment convertir du type String en type Path et obtenir le chemin
kotlin & Java: Comment masquer la barre d'outils uniquement pour des fragments spécifiques
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java