Dieser Artikel ist ein Artikel, der den Stress einer SE löst. Je nach Inhalt kann es für jemanden nützlich sein.
RDBMS, das sich nicht normalisieren konnte, wird mit ~~ Reflexion aktualisiert, um Stress abzubauen. Ich denke nicht an Leistung.
Zunächst möchte ich sagen, dass ich ältere Technologien wie Hosts nicht kritisieren möchte. Segment auf dem Host? Es scheint üblich zu sein, ein Suffix hinzuzufügen. Es scheint, dass die Anzahl der Fälle von Host-Web-Downsizing heutzutage abnimmt, aber es ist ein persönlicher Stressabbau für den Normalisierungsfehler, den ich kürzlich im Fall von Downsizing gesehen habe.
Zum Zeitpunkt des Downsizing wurden Elemente wie die Elemente 01 bis 05 als Host-Gedanke in eine Tabelle gebracht, was die Wurzel allen Übels ist.
Beispiel) TBL-Name Account Management Store-Tabelle Spalte Speichercode (PK) Zweig 01 Zweig 02 Zweig 03 Zweigstelle 04 Zweig 05
Ich wollte eine Filiale haben, die unter dem übergeordneten Geschäft hängt, das das Konto verwaltet. Es sollte jedoch ordnungsgemäß normalisiert werden, um eine "Verzweigungstabelle zu erstellen, die vom übergeordneten Speichercode abhängt". Es ist sehr anfällig für Änderungen, wenn die Anzahl der Zweige zunimmt.
Ich bin auch Ingenieur. Und seit ich eingestellt bin, bin ich ein Erwachsener (Mitte 30), der versucht zu schlucken, was nicht geändert werden kann, und versucht, gut zu reagieren.
Bereiten Sie zunächst einen Getter mit Suffix vor. Es ist nur lang, also falten Sie es zusammen.
suffixMethods.java
package suffixMethodsCall;
public class suffixMethods {
private static String RETURN_CODE_A = "A";
private static String RETURN_CODE_B = "B";
private static String RETURN_CODE_C = "C";
private static String RETURN_CODE_D = "D";
private static String RETURN_CODE_E = "E";
private static String RETURN_CODE_F = "F";
private static String RETURN_CODE_G = "G";
private static String RETURN_CODE_H = "H";
private static String RETURN_CODE_I = "I";
private static String RETURN_CODE_J = "J";
public String getReturnCode01() {
return RETURN_CODE_A;
}
public String getReturnCode02() {
return RETURN_CODE_B;
}
public String getReturnCode03() {
return RETURN_CODE_C;
}
public String getReturnCode04() {
return RETURN_CODE_D;
}
public String getReturnCode05() {
return RETURN_CODE_E;
}
public String getReturnCode06() {
return RETURN_CODE_F;
}
public String getReturnCode07() {
return RETURN_CODE_G;
}
public String getReturnCode08() {
return RETURN_CODE_H;
}
public String getReturnCode09() {
return RETURN_CODE_I;
}
public String getReturnCode10() {
return RETURN_CODE_J;
}
}
Ich habe eine Hinrichtungsklasse gemacht.
suffixMethodsCaller.java
package suffixMethodsCall;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
public class suffixMethodsCaller {
/**
* <pre>
*Führen Sie alle Getter mit dem in SuffixMethods enthaltenen Suffix aus.
*Stellen Sie sicher, dass der matchTargetCode am Anfang enthalten ist.
* </pre>
*/
public static void main(String[] args) {
//Zu übereinstimmende Zeichenfolge
String matchTargetCode = "J";
//Codeliste aus der Methode mit Suffix
List<String> codeList = new ArrayList<String>();
//Geben Sie Klasse und Methode als Zeichenfolge an
suffixMethods sm = new suffixMethods();
String clazz = sm.getClass().getName();
String baseSuffixMethod = "getReturnCode";
int suffixPartStart = 1;
int suffixPartEnd = 10;
//Führen Sie eine Methode mit Suffix mithilfe von Reflection aus
try {
Class<?> c = Class.forName(clazz);
Object myObj = c.newInstance();
//Schleifen Sie den Suffix-Teil und tauchen Sie in die Codeliste ein
for ( ; suffixPartStart <= suffixPartEnd; suffixPartStart++) {
//Einstellungen der Ausführungsmethode
Method m = c.getMethod(baseSuffixMethod + String.format("%02d", suffixPartStart));
//In Codeliste packen
codeList.add(m.invoke(myObj).toString());
}
} catch(ReflectiveOperationException e) {
e.printStackTrace();
}
//Ausgabe mit bool, ob die übereinstimmende Zeichenfolge in der Ausführungsergebnisliste der Methode mit Suffix enthalten ist
System.out.println(codeList.contains(matchTargetCode));
}
}
Es ist immer noch ein bisschen schmutzig, aber ich habe mein Ziel vorerst erreicht.
In diesem Fall habe ich 10 Methoden mit Suffix als Beispiel verwendet, aber wenn die Anzahl steigt, ist die Leistung ein Problem.
Sie können den Ausführungsteil in eine andere Methode ausschneiden und erfrischender gestalten. Wenn Sie jedoch auf die Reflection-API oder den Hardcode zugreifen und alles mit "String.equals" abgleichen, welches ist besser?
Ich werde es noch einmal überprüfen.
Dieses Mal habe ich es zum Zweck des Stressabbaus codiert, aber ich hatte bisher nicht viele Möglichkeiten, Reflexion zu verwenden, daher dauerte es länger als erwartet.
Downsizing und Migration PJs sind immer sehr ärgerlich. Sie können es ehrlich tun, aber es gibt viele solche Dinge.