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.
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).
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
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!
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.
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.
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;
}
}
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