Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 3

Einführung

Bei der Verwendung von Kotlin unter Android usw. gibt es viele Leute, die automatisch mit "Java-Datei in Kotlin-Datei konvertieren" von Java konvertieren. Es funktioniert tatsächlich, aber es ist ein Memo, um noch einen Schritt weiter zu gehen und Kotlin besser zu nutzen. 3. Mal Dieses Mal lernen Sie, wie Sie List und Anweisungen verarbeiten. Kotlin-Version: 1.4

Beispielcode vor der Kotlin-Konvertierung

Ein Beispiel, in dem ein Prozess zum Generieren einer Liste aus einem Objekt vorhanden ist. Es gibt einige Bedingungen zum Erstellen einer Liste.

ItemData.java


//Objekt mit 7 Saiten
public class ItemData {
    private String item1;
    private String item2;
    private String item3;
    private String item4;
    private String item5;
    private String item6;
    private String item7;

    public ItemData2(String item1, String item2, String item3, String item4,
                     String item5, String item6, String item7) {
        this.item1 = item1;
        this.item2 = item2;
        this.item3 = item3;
        this.item4 = item4;
        this.item5 = item5;
        this.item6 = item6;
        this.item7 = item7;
    }

    public String getItem1() {
        return item1;
    }

    public String getItem2() {
        return item2;
    }

    public String getItem3() {
        return item3;
    }

    public String getItem4() {
        return item4;
    }

    public String getItem5() {
        return item5;
    }

    public String getItem6() {
        return item6;
    }

    public String getItem7() {
        return item7;
    }
}

ListUtil.java


//Dienstprogramm zum Erstellen einer Liste aus einem Objekt
public final class ListUtil {

    private ListUtil() {
    };

    private static final int MAX_SIZE = 4;

    //Erstellen Sie eine Liste mit item1, item2, item3, item4, item5 des Objekts
    //Wenn es jedoch null ist, wird es nicht zur Liste hinzugefügt.
    public static List<String> createItemList(final ItemData itemData) {
        if (itemData == null) {
            return new ArrayList<>();
        }
        final List<String> list = new ArrayList<>();
        for (int i = 0; i <= MAX_SIZE; i++) {
            switch (i) {
                case 0:
                    if (itemData.item1 != null) {
                        list.add(itemData.item1);
                    }
                    break;
                case 1:
                    if (itemData.item2 != null) {
                        list.add(itemData.item2);
                    }
                    break;
                case 2:
                    if (itemData.item3 != null) {
                        list.add(itemData.item3);
                    }
                    break;
                case 3:
                    if (itemData.item4 != null) {
                        list.add(itemData.item4);
                    }
                    break;
                case 4:
                    if (itemData.item5 != null) {
                        list.add(itemData.item5);
                    }
                    break;
                default:

            }
        }
        return list;
    }
}

Beispielcode nach der automatischen Konvertierung von Kotlin

Wenn dies automatisch konvertiert wird, sieht es so aus ... Vorerst funktioniert es noch.

ItemData.kt


//Objekt mit 7 Saiten
class ItemData(
    val item1: String,
    val item2: String,
    val item3: String,
    val item4: String,
    val item5: String,
    val item6: String,
    val item7: String
)

ListUtil.kt


//Dienstprogramm zum Erstellen einer Liste aus einem Objekt
object ListUtil {
    private const val MAX_SIZE = 4
    //Erstellen Sie eine Liste mit item1, item2, item3, item4, item5 des Objekts
    //Wenn es jedoch null ist, wird es nicht zur Liste hinzugefügt.
    fun createItemList(itemData: ItemData?): List<String?> {
        if (itemData == null) {
            return ArrayList()
        }
        val list: MutableList<String?> = ArrayList()
        for (i in 0 until MAX_SIZE) {
            when (i) {
                0 -> if (itemData.item1 != null) {
                    list.add(itemData.item1)
                }
                1 -> if (itemData.item2 != null) {
                    list.add(itemData.item2)
                }
                2 -> if (itemData.item3 != null) {
                    list.add(itemData.item3)
                }
                3 -> if (itemData.item4 != null) {
                    list.add(itemData.item4)
                }
                4 -> if (itemData.item5 != null) {
                    list.add(itemData.item5)
                }
                else -> {
                }
            }
        }
        return list
    }
}

Überlegen Sie, wie Sie es implementieren möchten

Da es in Kotlin implementiert ist, möchte ich es einfacher machen. Ich werde es sofort beheben

ItemData.kt


//Geben Sie als Datenklasse mit Daten an
data class ItemData(
    val item1: String,
    val item2: String,
    val item3: String,
    val item4: String,
    val item5: String,
    val item6: String,
    val item7: String
)

ListUtil.kt


//Dienstprogramm zum Erstellen einer Liste aus einem Objekt
object ListUtil {
    private const val MAX_SIZE = 4
    //Erstellen Sie eine Liste mit item1, item2, item3, item4, item5 des Objekts
    //Wenn es jedoch null ist, wird es nicht zur Liste hinzugefügt.

    //Der Rückgabewert ist List<String?>→List<String>Ist gut
    fun createItemList(itemData: ItemData?): List<String> =
        itemData?.let {
            //Wenn null, geben Sie hier nicht ein
            mutableListOf<String?>().also { list ->
                // for (i in 0..MAX_SIZE)Kann auch als beschrieben werden
                (0 until MAX_SIZE).forEach { i ->
                    when (i) {
                        0 -> it.item1
                        1 -> it.item2
                        2 -> it.item3
                        3 -> it.item4
                        4 -> it.item5
                        else -> null
                    }.also {
                        list += it
                    }
                }
            }.filterNotNull()
            //Dies eliminiert die Null in der Liste und macht den String NonNull.
            //Sie müssen beim Hinzufügen nicht auf Null prüfen
        } ?: emptyList()
    //Gibt eine leere Liste zurück, wenn null
    //Die leere Liste ist ArrayList()Nicht leerListe()Gib es zurück
}

Sehr einfach!

Recommended Posts

Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 3
Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 2
Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 1
[Android] Konvertieren Sie Android Java-Code in Kotlin
Kotlins Klasse Teil 2 zum Senden an Java-Entwickler
Konvertieren Sie alle Android-Apps (Java) in Kotlin
Road to Java Engineer Teil 1 Einführung & Umgebungskonstruktion
So konvertieren Sie eine Datei in ein Byte-Array in Java
So konvertieren Sie Java Base
[Java] Konvertiert ArrayList in Array
Road to Java Engineer Part2 Was für eine Sprache ist Java?
Java mit Ramen lernen [Teil 1]
Straße nach Java SE 11 Silberakquisition
Kotlin-Klasse zum Senden an Java-Entwickler
So konvertieren Sie erb-Datei in haml
Protokollausgabe in Datei in Java
[Java] Konvertiere 1 in N Liste in Karte
[Android] Konvertieren Sie Map in JSON mit GSON mit Kotlin und Java
Der Weg von JavaScript nach Java
[Java] Konvertieren Sie ein Array in ArrayList * Achtung
[Java] Verwendung der File-Klasse
Der Weg zum Erstellen eines Webdienstes (Teil 2)
Java SE8 Silber ~ Der Weg zum Pass ~
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
[Java] Konvertiert Null vom Objekttyp in String-Typ
Konvertieren Sie SVG-Dateien in Java in PNG-Dateien
Kotlin-Scope-Funktionen zum Senden an Java-Entwickler
Beispiel zum Entpacken einer gz-Datei in Java
Memo für die Migration von Java nach Kotlin
<Java> Quiz zum Batch-Konvertieren von Dateinamen, die durch eine bestimmte Zeichenfolge mit einem Teil des Dateinamens getrennt sind
[Ruby] So konvertieren Sie eine CSV-Datei in Yaml (Yml)
Einführung in Kotlin in ein bestehendes Java Maven-Projekt
Migrieren Sie von Java zu Server Side Kotlin + Spring-Boot
Mit ShiftJIS in Datei schreiben ・ Datei lesen (Kotlin / JVM)
[Java] Konvertieren Sie DB-Code mit enum in einen Codewert
Grundeinstellungen für das Umschreiben von Java-Projekten in Kotlin
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Die Geschichte des Versuchs, JAVA File zu bedienen
Erste Schritte mit Kotlin zum Senden an Java-Entwickler
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
Konvertieren Sie verschachtelte Java-Beans in das Format aaa.bbb [0] .ccc
Wo Java-Programmierer dazu neigen, über Kotlin zu stolpern
Wie schreibe ich Java String # getBytes in Kotlin?
Was Java-Unerfahrene getan haben, um Kotlin zu studieren
[Java] Konvertieren und Importieren von Dateiwerten mit OpenCSV
Der Weg zum Erstellen eines Webdienstes (Teil 1)