Was ich über Java 5 recherchiert habe

Überblick

Meine Java-Kenntnisse haben bei "1.4" fast aufgehört. Um die aktuelle Situation zu ändern, werde ich sie nach und nach aktualisieren.

Derzeit läuft die App, die ich hauptsächlich im Geschäftsleben berührt habe, mit "1,5". Ursprünglich war es eine App, die vor "1.4" erstellt wurde, und die alte Beschreibung bleibt erhalten. Ich werde beschreiben, was ich über die Funktionen untersucht habe, die in "1.5" durch das Versions-Upgrade dieser Anwendung hinzugefügt wurden.

Was ich nachgeschlagen habe

Die Variablennamen haben map, lst, str usw., wodurch Sie sich möglicherweise unwohl fühlen. Keine Sorge, es wurde nur gemäß der Namenskonvention Ihres Unternehmens geschrieben (die jetzt anders ist).

Generischer Typ (Generika)

Da es einen Ort gab, an dem ich den generischen Typ (Generika) verwenden konnte, Ich habe es wie folgt geändert.

private Map mapPref = new HashMap();
public String getPrefID(String strName) {
  if (strName == null) {
    return "";
  }
  return mapPref.get(strName) == null ? "" : (String)mapPref.get(strName);
}

Der Name der Präfektur (z. B. Tokio) wird im Schlüssel gespeichert, und die Präfektur-ID (01 in Hokkaido, 13 im Fall von Tokio usw.) wird im Wert gespeichert.

private Map<String, String> mapPref = new HashMap<String, String>();
public String getPrefID(String strName) {
  if (strName == null) {
    return "";
  }
  return mapPref.get(strName) == null ? "" : mapPref.get(strName);
}

Mithilfe von Generika können Sie den Werttyp, der in eine Sammlung wie Map aufgenommen wird, explizit kennen. Wenn Sie versuchen, einen anderen Wert als den angegebenen Typ einzugeben, tritt ein Fehler auf, der das Auffinden von Kompilierungsfehlern erleichtert. Dieses Mal verwenden wir Generika für Sammlungen, aber Sie können auch Generika verwenden, um Klassen und Methoden zu implementieren.

Referenz: [Generika](https://github.com/travitu/Java-Tips/wiki/%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%82 % AF% E3% 82% B9% EF% BC% 88% E7% B7% 8F% E7% A7% B0% E5% 9E% 8B% EF% BC% 89)

MakerCode.java


public class MakerCode<T> {
  public void show(T[] id) {
    for (T v : id) {
      System.out.println(v);
    }
  }
}

Car.java


public class Car {
  private String[] id = {"TY", "NS", "HN"};
  public String[] getId() {
    return id;
  }
}

Bike.java


public class Bike {
  private Integer[] id = {10, 20, 30}; //Auto-Boxen
  public Integer[] getId() {
    return id;
  }
}

Main.java


public class Main {
  public static void main(String[] args) {
    Car car = new Car();
    MakerCode<String> carMakerCode = new MakerCode<String>();
    carMakerCode.show(car.getId());

    Bike bike = new Bike();
    MakerCode<Integer> bikeMakerCode = new MakerCode<Integer>();
    bikeMakerCode.show(bike.getId());
  }
}

Außerdem scheinen ** Platzhalter ** verwendet werden zu können, aber es ist schwierig ... Ich denke, ich muss mehr herausfinden. Referenz: Platzhalter

Für Aussage erweitert

Da es einen Ort gab, an dem ich die erweiterte for-Anweisung verwenden konnte, Ich habe es wie folgt geändert.

List<String> lstMaker = new ArrayList<String>();
SQLParameters sqlParams = new SQLParameters();
for (int i = 0; i < lstMaker.size(); i++) {
  sqlParams.add(lstMaker.get(i));
}

lstMaker enthält die dem Hersteller zugewiesene ID (z. B. 1 für Firma A).

List<String> lstMaker = new ArrayList<String>();
SQLParameters sqlParams = new SQLParameters();
for (String id : lstMaker) {
  sqlParams.add(id);
}

Die Beschreibung ist einfacher als die normale for-Anweisung. Der Codierungsaufwand wurde geringfügig reduziert. Es sieht erfrischend aus!

Auto-Boxen

Es wird in Bike.java verwendet, das im obigen" Generic type (generics) "beschrieben ist. Für bis zu "1.4"

private Integer[] id = {new Integer(10), new Integer(20), new Integer(30)};

Wenn Sie nicht so schreiben, wird es " type mismatch: kann nicht von int nach Integer konvertieren "sein. Von "1.5" Konvertierung vom primitiven Typ zur Wrapper-Klasse, Konvertierung von der Wrapper-Klasse zum primitiven Typ Ist jetzt automatisch erledigt.

Variable Argumente

Ich konnte keinen Ort finden, der in der App verwendet werden könnte. Es kann als Variablenargument definiert werden, indem nach dem Variablentyp "..." geschrieben wird.

public void print(String... value) {
  for (String v : value) {
    System.out.println(v);
  }
}
public static void main(String[] args) {
  (new Main()).print("Tokio", "Präfektur Kanagawa", "Saitama", "Präfektur Chiba");
}

Sie können auch ein Array übergeben.

public static void main(String[] args) {
  String[] pref = {"Hokkaido", "Präfektur Aomori", "Präfektur Yamagata", "Präfektur Iwate"};
  (new Main()).print(pref);
}

Für jede Methode kann nur ein variables Argument angegeben werden, und nur das letzte Argument kann angegeben werden.

Aufzählungstyp

Ein Typ, der mehrere Konstanten in einer verwalten kann Die folgende Beschreibung kann zu einem Typ zusammengefasst werden.

public static final String STATUS_SUCCESS  = "1";
public static final String STATUS_SHORTAGE = "2";
public static final String STATUS_MISMATCH = "3";

--Nach Änderung (unter Verwendung des Aufzählungstyps)

public enum Status {
  SUCCESS,
  SHORTAGE,
  MISMATCH,
}

Es kann einen bestimmten Wert haben, wie unten gezeigt.

public enum Status {
  SUCCESS  ("1"),
  SHORTAGE ("2"),
  MISMATCH ("3"),
  ;
  private final String value;
  private Status(final String value) {
    this.value = value;
  }
}

Sie können auch eine Methode haben.

public enum Status {
  SUCCESS  ("1"),
  SHORTAGE ("2"),
  MISMATCH ("3"),
  ;
  private final String value;
  private Status(final String value) {
    this.value = value;
  }
  public String getValue() {
    return this.value;
  }
}

Andere

Es wurden weitere Funktionen hinzugefügt, aber ich möchte einmal für "1.5" zu "1.6" wechseln. Schauen wir uns die Anmerkungen etwas genauer an.

Referenz: Neue und erweiterte Funktionen

Recommended Posts

Was ich über Java 8 recherchiert habe
Was ich über Java 6 recherchiert habe
Was ich über Java 9 recherchiert habe
Was ich über Java 5 recherchiert habe
Was ich über Kotlin gelernt habe
Was ich mit Java Gold gelernt habe
Was ich mit Java Silver gelernt habe
[Java] Informationen zu Java 12-Funktionen
Was ist java
[Java] Über Arrays
Etwas über Java
Wo ist mit Java?
Was ist Java <>?
[Java] -Schnittstelle
Was ist java
Was ich gelernt habe
Über die Java-Klasse
Informationen zu Java-Arrays
Über Java-Vererbung
Über Schnittstelle, Java-Schnittstelle
Was ich aus der Java-Geldberechnung gelernt habe
Über Java Var
Über Java Literal
Woran ich dachte, als ich anfing, von Java nach Kotlin zu migrieren
Zusammenfassung dessen, was ich über Spring Boot gelernt habe
[Java] Was soll ich zum Schreiben von Dateien verwenden?
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
Informationen zur Java-Protokollausgabe
Informationen zur Java-Funktionsschnittstelle
Über die Klassenteilung (Java)
Über [Java] [StreamAPI] allMatch ()
Ich habe zuerst Java touched berührt
Ich habe zuerst Java touched berührt
Informationen zur Bindung von Java-Methoden
Ich habe zuerst Java touched berührt
[Java] Über anonyme Klassen
Informationen zu Aufteilungsmethoden (Java)
Was ist Java-Kapselung?
Was ich gelernt habe ② ~ Mock ~
Informationen zur Java-Array-Liste
Über Java-Polymorphismus super ()
Was ich gelernt habe ~ ~ DJUnit ~
Informationen zur Vererbung (Java Silver)
Informationen zur Java String-Klasse
Informationen zu Java-Zugriffsmodifikatoren
Über Java-Lambda-Ausdrücke
Ich habe zuerst Java berührt
Informationen zu Java-Einstiegspunkten
Java 10 Docker-Unterstützung
Persönliche Zusammenfassung über Java
Was ist Java API-Java?
[Java] Was ist flatMap?
[Java] Was ist ArrayList?
Über die abstrakte Klasse von Java
Ich habe leicht verständlich über Java Downcast geschrieben
Ich werde sowieso schreiben, was ich über Docker gelernt habe (zweite)
Was ich in Java gelernt habe (Teil 3) Anweisung zur Ausführung von Anweisungen
Was ich beim Erstellen eines Servers in Java gelernt habe