Verwendung der in Kotlins Schnittstelle implementierten Funktion, die in Maven als Standardimplementierung von Java 8 eingeführt wurde

Überblick

Sie können eine Standardimplementierung für Kotlins I / F definieren, müssen diese jedoch im Voraus festlegen, um diese Standardimplementierung von der Java-Seite aus zu verwenden. Dieses Mal werde ich die Einstellmethode aufschreiben.

Annahme

Einstellmethode

① Kotlin-Plug-In-Einstellungen

Fügen Sie dem Argument des Teils, der das Kompilieren von Kotlin in pom.xml definiert, -Xjvm-default = kompatibilität hinzu Beispiel:

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>

Beschreiben von jvmTarget in Eigenschaften Beispiel:

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) Fügen Sie der Methode, die Java als Standardimplementierung erkennen soll, die Annotation @ JvmDefault hinzu.

Das ist alles.

Recommended Posts

Verwendung der in Kotlins Schnittstelle implementierten Funktion, die in Maven als Standardimplementierung von Java 8 eingeführt wurde
[Verarbeitung × Java] Verwendung der Funktion
Verwendung von ArgumentMatchern wie Mockitos any () in Kotlin
Wie verwende ich Klassen in Java?
Verwendung von MinIO mit derselben Funktion wie S3 Verwenden Sie Docker-Compose
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
[Java] Verwendung der File-Klasse
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
[Verarbeitung × Java] Verwendung der Klasse
So erhalten Sie das Datum mit Java
[Java] Verwendung der Calendar-Klasse
Verwendung von credentials.yml.enc aus Rails 5.2
Was mir bei der Verwendung der Schnittstelle einer Funktion mit Standardargumenten in Kotlin aus Java nicht gefällt
So erhalten Sie eine Klasse von Element in Java
Verwendung der replace () -Methode (Java Silver)
Wie schreibe ich Java String # getBytes in Kotlin?
[Java] So lassen Sie den privaten Konstruktor in Lombok weg
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
Zusammenfassung der Implementierung von Standardargumenten in Java
Hinweise zur Verwendung regulärer Ausdrücke in Java
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Verwendung der Getter / Setter-Methode (in Objektorientierung)
Verwendung von Maven zum Platzieren von Ressourcendateien außerhalb von JAR
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java
Verwendung von JSON-Daten in der WebSocket-Kommunikation (Java, JavaScript)
So erstellen Sie ein Platzhalterteil zur Verwendung in der IN-Klausel
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
Aufrufen und Verwenden der API in Java (Spring Boot)
Verwendung des Java-Aufzählungstyps (Enum) in Mapper XML von MyBatis
Implementieren Sie dieselbe Funktion wie das C, C ++ - System ("cls") in Java
So leiten Sie den letzten Tag des Monats in Java ab
So wechseln Sie Java in der OpenJDK-Ära auf dem Mac
[Java] Verwendung von Map
Verwendung von Java Optional
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
Verwendung von Java Map
Verwendung von Java-Variablen
Verstehen Sie, wie die funktionale Programmierung in Java auf einen Schlag eingeführt wurde
So testen Sie die Java-Vorschaufunktion (z. B. Java 15 Record) mit IntelliJ
So verwenden Sie das Befehlszeilentool "Java" ... So vermeiden Sie das Auftauchen
So führen Sie das Kotlin Coroutine-Beispiel über die Befehlszeile aus
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
Der Operator, der geboren wurde, um geboren zu werden, instanceof (Java) ~ So verwenden Sie den instanceof-Operator ~
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
kotlin & Java: So blenden Sie die Symbolleiste nur für bestimmte Fragmente aus
So ermitteln Sie die Länge einer Audiodatei mit Java
So erhöhen Sie den Wert von Map in einer Zeile in Java