[JAVA] Geben Sie ein Suffix für die Methode an

Einführung

Dieser Artikel ist ein Artikel, der den Stress einer SE löst. Je nach Inhalt kann es für jemanden nützlich sein.

Was machst du?

RDBMS, das sich nicht normalisieren konnte, wird mit ~~ Reflexion aktualisiert, um Stress abzubauen. Ich denke nicht an Leistung.

Was es wirklich ist

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.

Obwohl

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.

Es sieht aus wie das

Bereiten Sie zunächst einen Getter mit Suffix vor. Es ist nur lang, also falten Sie es zusammen.

suffixMethods

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.

schließlich

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.

Recommended Posts

Geben Sie ein Suffix für die Methode an
Geben Sie ein Suffix für Methode 2 heraus
[Ruby] Schneiden Sie eine Zeichenfolge mit der Slice-Methode aus
Ich bin sofort auf die Standardeingabemethode mit AtCoder gestoßen.
[Swift 5] Wählen Sie mit der UIDate-Auswahl unter iOS14 ein Datum aus
Simulieren Sie die Simplex-Methode mit der GUI
Setzen Sie ein Abzeichen auf das Symbol
Programmieren mit Ruby (unterwegs)
Logik zum Zeichnen eines Kreises auf der Konsole mit ASCII-Grafik
Herstellen einer Verbindung zu einer Datenbank mit Java (Teil 1) Möglicherweise die grundlegende Methode
Meine Gedanken zur Equals-Methode (Java)
Deklarieren Sie eine Methode mit einem Java-Rückgabewert mit dem Rückgabewert-Datentyp
Erstellen Sie mit dem Befehl eine JAR-Datei
Ruft die als Argument übergebene Zeichenfolge als Methode mit send auf
Ein Hinweis zur libGDX Utils-Klasse
Führen Sie DMN mit der Camunda DMN Engine aus
Verwenden Sie das benannte Format mit Rubys Formatmethode
Code zum Lösen einer Zufallszahlenmatrix mit der Pivot-Gauß-Eliminierungsmethode
Hello World, eine plattformübergreifende GUI-App mit Groovy, die auf der Java-Plattform ausgeführt wird
Ein kurzer Hinweis zur Verwendung von jshell mit dem offiziellen Docker-Image des JDK
Verwenden Sie Vorlagen für den Klassenpfad mit Apache Velocity
Veröffentlichen Sie die mit Ruby on Rails erstellte App
Stimmt die Anmerkungen auf der Schnittstelle mit Spring AOP überein
Erstellen Sie eine Mehrschlüsselkarte mit einer Standardbibliothek
Bestimmen Sie die aktuelle Seite mit Ruby on Rails
Ich habe mit Ruby On Rails ein Portfolio erstellt
Über die Methode
[Java] Schneiden Sie einen Teil der Zeichenfolge mit Matcher und regulären Ausdrücken aus
Refactor die Implementierung des Decorator-Musters mit einer funktionalen Schnittstelle
Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf
Die Geschichte, einen Reverse-Proxy mit ProxyServlet zu erstellen
Zeigen Sie die Liste in setDetails mit Federsicherheit auf dem Bildschirm an
Warum mit Singleton anstelle einer statischen Methode implementieren?
Implementierung einer starken API für "Ich möchte ~~ auf dem Bildschirm anzeigen" mit einfachem CQRS
So reduzieren Sie die Programmlast ein wenig, wenn Sie Zeichen mit JAVA kombinieren
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?