Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java

Du hättest den Code letztes Jahr in Kotlin schreiben sollen! Ich habe mir das Dokument angesehen, aber als ich dachte, ich hätte es nicht erkannt, habe ich letztes Jahr Go geschrieben ... Ich habe Kotlin angeschaut, weil es ein Boot war, auf das ich gestiegen bin.

Entwicklungsumgebung ist IntelliJ

Im Tutorial "Erste Schritte mit Kotlin" werden "Erste Schritte mit IntelliJ IDEA" und "IntelliJ" zuerst angezeigt. Ist es also beliebt? Installieren Sie die Community-Version über Download.

IntelliJ.PNG

Erstellung und Ausführung von Kotlin-Dateien

IntelliJ fühlt sich cool an, nur weil es dunkler ist als damals, als ich es gesehen habe. intellij2.png Bis Sie ein neues Projekt erstellen, eine Kotlin-Datei hinzufügen und ausführen, wird sie als "Erste Schritte mit IntelliJ IDEA" gestochen scharf angezeigt. es kann.

fun main() {
    println("Hello Kotlin!")
}

Als ich IntelliJ installiert habe, habe ich mich gefragt, ob dies der Fall ist, aber Kotlins Dateierweiterung ist ".kt". (Anfänger)

Links neben dem Code, der die .kt-Datei bearbeitet, befindet sich eine Schaltfläche Ausführen, auf die Sie klicken können, um sie auszuführen. IntelliJ Sehr praktisch. kt_run.png

Der Dateiname ist KotlinClassSono1.kt, aber ich habe mich gefragt, ob die Kotlin-Datei eine Klassendatei ist.

Wie nennt man diese Hauptfunktion von Java? Aus diesem Grund gibt es möglicherweise eine Jar-Datei ... Selbst wenn ich "Build Project" mit IntelliJ ausführe, wird nichts ausgegeben, also habe ich es überprüft.

Jar-Datei ausgeben

Öffnen Sie die Projektstruktur über das Menü Datei. project-structure.png Klicken Sie unter Projekteinstellungen> Artefakt-JAR> Von Modulen mit Abhängigkeiten auf die Schaltfläche "+" add-jar.png Klicken Sie auf die Schaltfläche "OK", ohne die Hauptklasse anzugeben createjarfrommodule.png Aktivieren Sie "In Projekterstellung einbeziehen". includeinprojectbuild.png Wenn Sie erneut versuchen, "Build Project" auszuführen ... Die Jar-Datei wird unter dem Projektordner ausgegeben. Vielen Dank, IntelliJ outputdir.PNG Der Projektname lautet übrigens "Kotlin Component". Blick in die Jar-Datei jar1.PNG Es wurde bestätigt, dass "KotilnClassSono1Kt.class" mit dem Namen "Dateiname + Kt" enthalten war.

Versuchen Sie, von Java aus anzurufen

Wenn ich die im Java-Projekt erstellte Jar-Datei lese,

public class Main {
	public static void main(String[] args) {
		KotlinClassSono1Kt.main();
	}
}

Sie können KotlinClassSono1Kt sehen, javaexec.PNG Ich konnte Kotlin-Code von Java ausführen. Kt ist an den Klassennamen angehängt, also habe ich mich gefragt, was es ist, also bin ich zurück zu IntelliJ gegangen und habe ein Paket und eine Klasse hinzugefügt. Erstellen Sie ein Paket mit dem Kontextmenü Neu> Paket im Ordner src des Pakets. es ist normal. Im erstellten Paket das Kontextmenü Neu> Kotlin Datei / Klasse !? newclass.png Zum ersten Mal bemerkte ich den Unterschied zwischen Datei und Klasse.

package ari

class KotlinClassSono2 {
}

"Ari" ist für Paket angegeben. Imitieren wir Kotlins Klassendokumentation und geben der Klasse die Funktion "test". Der Konstruktor ist ein Bonus.

package ari

class KotlinClassSono2 constructor(name: String){
    init {
        println("name = ${name}")
    }

    constructor(name: String, age: Int) : this("$name"){
        println("age = ${age}")
    }

    fun test() {
        println("test call OK !")
    }
}

Führen Sie "Build Project" erneut aus, um eine Jar-Datei zu erstellen und in Java zu laden. Ich habe die Klasse "Kotlin Class Sono2" unter dem Paket "ari" gesehen. Der Klassenname hat nicht "Kt". Ich sehe ~ javacode.PNG Ich habe auch eine Instanz mit dem Konstruktor erstellt. Der Funktionsaufruf ist ebenfalls erfolgreich. javaexec2.PNG

Schließlich

Kotlin ist gut. Ich benutze es nicht, aber ich dachte, ich sollte die Referenz etwas mehr lesen.

Recommended Posts

Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
Implementieren Sie die Java-Schnittstelle in der JRuby-Klasse und rufen Sie sie von Java aus auf
Schreiben einer Klasse, die in Java bestellt werden kann Ein kleines Standard-Memo
StringBuffer- und StringBuilder-Klasse in Java
[Kotlin] Holen Sie sich Java Constructor / Method von KFunction und rufen Sie es auf
[Java] Vorsichtsmaßnahmen beim Referenzieren in einer übergeordneten Klasse und beim Instanziieren in einer untergeordneten Klasse
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist eine Klasse in der Java-Sprache (2 /?)
Warum nennt Java eine Datei eine Klasse?
Ein Java-Ingenieur verglich Swift, Kotlin und Java.
Erstellen einer Matrixklasse in Java Teil 1
Ich habe eine Lambda-Funktion in Java geschrieben und mit SAM bereitgestellt
GetInstance () aus einer @ Singleton-Klasse in Groovy aus Java
Ein kurzer Überblick über Java, das im Unterricht gelernt wurde
Wie schreibe ich Java String # getBytes in Kotlin?
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Ein kurzer Überblick über Java, das in Klasse 4 gelernt wurde
Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf
Durchsuchen Sie Klassenobjekte in Kotlin (anstelle der Java-Klasse name.class).
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Ein kurzer Überblick über Java, das in Klasse 3 gelernt wurde
Ein kurzer Überblick über Java, das in Klasse 2 gelernt wurde
Verwendung von Abstract Class und Interface in Java richtig
Rufen Sie ein in Swift geschriebenes Programm von Processing (Java) auf.
[Java] [Kotlin] Rufen Sie valueOf und Werte von Enum generisch auf
Schreiben Sie die Klassenvererbung in Ruby
Schreiben Sie Flyway-Rückrufe in Java
Definition und Instanziierung von Java-Klassen
Suchen Sie eine Teilmenge in Java
[Java] KClass in Java herunterladen [Kotlin]
[Java] Mach es konstant
Schreiben Sie Java8-ähnlichen Code in Java8
Weisen Sie Variablen Java8-Lambda-Ausdrücke zu und verwenden Sie sie erneut
Implementieren Sie Thread in Java und versuchen Sie, die anonyme Klasse Lambda zu verwenden
Memorandum Nr. 4 "Holen Sie sich eine Zeichenkette und dekorieren Sie sie" [Java]
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Aufrufen und Verwenden der API in Java (Spring Boot)
Java-Sprachfunktion und wie sie einen subtilen Fehler verursachte
Definieren Sie abstrakte Methoden in Java enum und schreiben Sie deren Verhalten
So entwickeln und registrieren Sie eine Sota-App in Java
[MQTT / Java] Implementierte eine Klasse, die Pub / Sub von MQTT in Java ausführt
[Java] Eine Klasse ist ein Betriebssystem und eine Instanz ist ein virtueller Computer.
Sortieren Sie die Liste in absteigender Reihenfolge in Java und generieren Sie zerstörungsfrei eine neue Liste
Rufen Sie Kotlins versiegelte Klasse von Java aus an
Unterschiede zwischen "Anfänger" Java und Kotlin
3 Implementieren Sie einen einfachen Interpreter in Java
Ich habe ein PDF mit Java erstellt.
Beispiel für Codierung und Decodierung in Java
Kotlin-Klasse zum Senden an Java-Entwickler
Behandeln Sie die Geschäftslogik für eine Reihe von Entitäten in einer Java-Klasse
Mechanismus und Merkmale der in Java häufig verwendeten Collection-Implementierungsklasse
Vergleiche Hallo Welt! Mit Spring Boot mit Java, Kotlin und Groovy
(Ruby on Rails6) Erstellen einer Datenbank und Anzeigen in einer Ansicht
Schreiben Sie Schlüssel und Werte in Ruby
Ein einfaches Beispiel für Rückrufe in Java
Ich habe ein Routensuchprogramm in TDD geschrieben und versucht, es umzugestalten
Erstellen einer Klasse für eine Matrix in Java Teil 2 - Über eine Matrix (lineare Algebra) -
Verstehe gleich und hashCode in Java
Machen Sie einen SOAP-Aufruf in C #