Ecrire une classe en Kotlin et l'appeler en Java

Vous devriez avoir écrit le code en Kotlin l'année dernière! J'ai regardé le document, mais quand j'ai pensé que je ne le reconnaissais pas, j'ai écrit Go l'année dernière ... J'ai regardé Kotlin parce que c'était un bateau sur lequel je montais.

L'environnement de développement est IntelliJ

Dans le didacticiel de mise en route de Kotlin, «Premiers pas avec IntelliJ IDEA» et IntelliJ apparaissent en premier, est-ce que c'est populaire? Installez la version communautaire en Download.

IntelliJ.PNG

Création et exécution de fichiers Kotlin

IntelliJ est cool simplement parce qu'il est plus sombre que lorsque je l'ai vu auparavant. intellij2.png Jusqu'à ce que vous créiez un nouveau projet, ajoutez un fichier Kotlin et exécutez-le, il sera clair comme "Getting Started with IntelliJ IDEA". ça peut.

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

Quand j'ai installé IntelliJ, je me suis demandé si c'était le cas, mais l'extension de fichier de Kotlin est ".kt". (Débutant)

Il y a un bouton Exécuter à gauche du code éditant le fichier .kt, vous pouvez donc cliquer dessus pour l'exécuter. IntelliJ Très pratique. kt_run.png

Le nom du fichier est KotlinClassSono1.kt, mais je me demandais si le fichier Kotlin est un fichier de classe.

Comment appelle-t-on cette fonction principale depuis Java? Donc je suppose qu'il y a un fichier Jar ... Même si j'exécute "Build Project" avec IntelliJ, rien n'est sorti, donc je l'ai vérifié.

Fichier Jar de sortie

Ouvrez la structure du projet dans le menu Fichier. project-structure.png Cliquez sur le bouton «+» dans Paramètres du projet> JAR des artefacts> À partir de modules avec dépendances add-jar.png Cliquez sur le bouton "OK" sans spécifier la classe principale createjarfrommodule.png Cochez "Inclure dans la construction du projet". includeinprojectbuild.png Si vous essayez d'exécuter à nouveau "Build Project" ... Le fichier Jar est sorti sous le dossier du projet. Merci IntelliJ outputdir.PNG Au fait, le nom du projet est "Kotlin Component". Regarder à l'intérieur du fichier Jar jar1.PNG Il a été confirmé que "KotilnClassSono1Kt.class" nommé "File name + Kt" était inclus.

Essayez d'appeler depuis Java

Quand je lis le fichier Jar créé dans le projet Java,

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

Vous pouvez voir KotlinClassSono1Kt, javaexec.PNG J'ai pu exécuter du code Kotlin à partir de Java. Kt est attaché au nom de la classe, alors je me suis demandé ce que c'était, alors je suis retourné à IntelliJ et j'ai ajouté un package et une classe. Créez un package avec le menu contextuel Nouveau> Package dans le dossier src du package. c'est normal. Dans le package créé, le menu contextuel Nouveau> Fichier / Classe Kotlin!? newclass.png Pour la première fois, j'ai remarqué la différence entre File et Class.

package ari

class KotlinClassSono2 {
}

"Ari" est spécifié pour Package. Imitons la [documentation de classe] de Kotlin (https://kotlinlang.org/docs/reference/classes.html) et donnons à la classe la fonction "test". Le constructeur est un 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 !")
    }
}

Exécutez à nouveau "Build Project" pour créer un fichier Jar et le charger en Java. J'ai vu la classe "Kotlin Class Sono2" sous le package "ari". Le nom de la classe n'a pas "Kt". Je vois ~ javacode.PNG J'ai également créé une instance en utilisant le constructeur. L'appel de fonction est également réussi. javaexec2.PNG

finalement

Kotlin est bon. Je ne l'utilise pas, mais j'ai pensé que je devrais lire un peu plus la référence.

Recommended Posts

Ecrire une classe en Kotlin et l'appeler en Java
Implémentez l'interface Java dans la classe JRuby et appelez-la depuis Java
Ecrire une classe qui peut être ordonnée en Java Un petit mémo standard
Classe StringBuffer et StringBuilder en Java
[Kotlin] Obtenez le constructeur / la méthode Java de KFunction et appelez-le
[Java] Précautions lors du référencement dans une classe parent et de l'instanciation dans une classe enfant
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce qu'une classe en langage Java (2 /?)
Pourquoi Java appelle-t-il un fichier une classe?
Un ingénieur Java a comparé Swift, Kotlin et Java.
Création d'une classe de matrice dans Java Partie 1
J'ai écrit une fonction Lambda en Java et l'ai déployée avec SAM
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Un examen rapide de Java appris en classe
Comment écrire Java String # getBytes dans Kotlin?
Comment compresser un fichier JAVA CSV et le gérer dans un tableau d'octets
Écrivez ABNF en Java et transmettez l'adresse e-mail
Un examen rapide de Java appris en classe part4
Appeler une méthode avec le bloc de rappel de Kotlin depuis Java
Parcourir les objets de classe dans Kotlin (au lieu de Java class name.class)
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Un examen rapide de Java appris en classe part3
Un examen rapide de Java appris en classe part2
Utilisation correcte de la classe abstraite et de l'interface en Java
Appeler un programme écrit en Swift depuis Processing (Java)
[Java] [Kotlin] Appeler valueOf et les valeurs de Enum de manière générique
Écrire l'héritage de classe dans Ruby
Ecrire des rappels de vol en Java
Définition et instanciation de classe Java
Rechercher un sous-ensemble en Java
[Java] Obtenir KClass en Java [Kotlin]
[Java] Rendez-le constant
Écrire du code de type Java8 en Java8
Attribuer des expressions lambda Java8 aux variables et les réutiliser
Implémentez Thread en Java et essayez d'utiliser la classe anonyme Lambda
Mémorandum n ° 4 "Obtenez une chaîne de caractères et décorez-la" [Java]
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Comment appeler et utiliser l'API en Java (Spring Boot)
Fonctionnalité du langage Java et comment elle a produit un bogue subtil
Définir des méthodes abstraites dans l'énumération Java et écrire leur comportement
Comment développer et enregistrer une application Sota en Java
[MQTT / Java] Implémentation d'une classe qui fait Pub / Sub de MQTT en Java
[Java] Une classe est un système d'exploitation et une instance est un ordinateur virtuel.
Trier la liste par ordre décroissant en Java et générer une nouvelle liste de manière non destructive
Appeler la classe scellée de Kotlin depuis Java
Différences entre Java "débutant" et Kotlin
3 Implémentez un interpréteur simple en Java
J'ai créé un PDF avec Java.
Exemple d'encodage et de décodage en Java
Classe Kotlin à envoyer aux développeurs Java
Gérer la logique métier pour un ensemble d'entités dans une classe Java
Mécanisme et caractéristiques de la classe d'implémentation Collection souvent utilisés en Java
Comparez Hello, world! Avec Spring Boot avec Java, Kotlin et Groovy
(Ruby on Rails6) Créer une base de données et l'afficher dans une vue
Ecrire des clés et des valeurs dans Ruby
Un exemple simple de rappels en Java
J'ai écrit un programme de recherche d'itinéraire dans TDD et j'ai essayé de le refactoriser
Création d'une classe pour une matrice en Java Partie 2-A propos d'une matrice (algèbre linéaire) -
Comprendre equals et hashCode en Java
Faire un appel SOAP en C #