[JAVA] Sortez avec un suffixe sur la méthode

introduction

Cet article est un article qui libère le stress d'un SE. Selon le contenu, cela peut être utile pour quelqu'un.

Que faites-vous?

Pour le SGBDR qui n'a pas réussi à se normaliser, utilisez la réflexion ~~ pour actualiser la source afin de soulager le stress. Je ne pense pas à la performance.

Ce que c'est vraiment

Tout d'abord, je voudrais dire que je ne veux pas critiquer les technologies héritées telles que les hôtes. Segment chez l'hôte? Il semble qu'il soit courant d'ajouter un suffixe à. Il semble que le nombre de cas de réduction de la taille des hôtes Web diminue ces jours-ci, mais c'est une libération de stress personnel pour l'échec de la normalisation que j'ai vu récemment dans le cas de la réduction de la taille.

Au moment de la réduction des effectifs, des éléments tels que les éléments 01 à 05 ont été placés dans une seule table, comme le pensait l'hôte, ce qui est la racine de tout mal.

Exemple) Nom TBL Table de magasin de gestion de compte Colonne Code de magasin (PK) Branche 01 Branche 02 Branche 03 Branche 04 Branche 05

Je voulais avoir une succursale suspendue sous le magasin parent qui gère le compte. Cependant, il doit être normalisé correctement pour créer une «table de branche qui se bloque à partir du code de magasin parent». Il est très vulnérable aux changements lorsque le nombre de succursales augmente.

Bien que

Je suis également ingénieur. Et depuis que je suis embauché, je suis un adulte (30 ans environ) qui essaie d'avaler ce qui ne peut pas être changé et vise à bien réagir.

Ça ressemble à ça

Tout d'abord, préparez un getter avec le suffixe. C'est juste long, alors pliez-le.

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;
	}
}

J'ai fait un cours d'exécution.

suffixMethodsCaller.java


package suffixMethodsCall;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

public class suffixMethodsCaller {

	/**
	 * <pre>
	 *Exécutez tous les getters avec le suffixe inclus dans suffixMethods,
	 *Vérifiez que le matchTargetCode au début est inclus.
	 * </pre>
	 */
	public static void main(String[] args) {

		//Chaîne de caractères à mettre en correspondance
		String matchTargetCode = "J";
		//Liste de codes obtenue à partir de la méthode avec suffixe
		List<String> codeList = new ArrayList<String>();

        //Spécifiez la classe et la méthode sous forme de chaîne de caractères
		suffixMethods sm = new suffixMethods();
        String clazz = sm.getClass().getName();
        String baseSuffixMethod = "getReturnCode";
        int suffixPartStart = 1;
        int suffixPartEnd = 10;

        //Exécuter une méthode avec suffixe en utilisant la réflexion
        try {
            Class<?> c = Class.forName(clazz);
            Object myObj = c.newInstance();

            //Bouclez la partie suffixe et plongez dans la liste de codes
            for ( ; suffixPartStart <= suffixPartEnd; suffixPartStart++) {
                //Paramètres de la méthode d'exécution
                Method m = c.getMethod(baseSuffixMethod + String.format("%02d", suffixPartStart));
                //Pack dans la liste de codes
                codeList.add(m.invoke(myObj).toString());
            }
        } catch(ReflectiveOperationException e) {
            e.printStackTrace();
        }

        //Sortie avec booléen si la chaîne de caractères à mettre en correspondance est incluse dans la liste des résultats d'exécution de la méthode avec suffixe
        System.out.println(codeList.contains(matchTargetCode));
	}
}

C'est encore un peu sale, mais j'ai atteint mon objectif pour le moment.

Dans ce cas, j'ai utilisé 10 méthodes avec suffixe comme exemple, mais si le nombre augmente, les performances seront un problème.

Vous pouvez découper la partie d'exécution selon une autre méthode et la rendre plus rafraîchissante. Cependant, si vous accédez à l'API de réflexion ou au code en dur et que vous faites correspondre tout avec String.equals, lequel est le meilleur?

Je vais le vérifier à nouveau.

à la fin

Cette fois, je l'ai codé dans le but de soulager le stress, mais je n'ai pas eu beaucoup d'occasions d'utiliser la réflexion jusqu'à présent, donc cela a pris plus de temps que prévu.

La réduction des effectifs et la migration des PJ sont toujours très ennuyeuses. Vous pouvez le faire honnêtement, mais il y a beaucoup de choses comme ça.

Recommended Posts

Sortez avec un suffixe sur la méthode
Sortez avec un suffixe sur la méthode 2
[Ruby] Découpez une chaîne de caractères à l'aide de la méthode slice
Je suis immédiatement tombé sur la méthode d'entrée standard avec AtCoder.
[Swift 5] Sélectionnez une date avec le sélecteur UIDate sur iOS14
Simuler la méthode simplex avec GUI
Mettre un badge sur l'icône
Programmation avec ruby (en route)
Logique pour dessiner un cercle sur la console avec l'art ASCII
Connexion à une base de données avec Java (partie 1) Peut-être la méthode de base
Mes réflexions sur la méthode d'égalité (Java)
Déclarez une méthode qui a une valeur de retour Java avec le type de données de valeur de retour
Créez un fichier jar avec la commande
Appelle la chaîne de caractères passée comme argument en tant que méthode avec send
Une note sur la classe Utils libGDX
Exécutez DMN à l'aide du moteur Camunda DMN
Utiliser le format nommé avec la méthode de format de Ruby
Code pour résoudre une matrice de nombres aléatoires avec la méthode d'élimination Pivot Gauss
Hello World, une application d'interface graphique multiplateforme avec Groovy fonctionnant sur la plate-forme Java
Une note rapide sur l'utilisation de jshell avec l'image Docker officielle du JDK
Utilisez des modèles sur le chemin de classe avec Apache Velocity
Publiez l'application avec ruby on rails
Correspond aux annotations sur l'interface avec Spring AOP
Créer une carte multi-touches avec une bibliothèque standard
Déterminez la page actuelle avec Ruby on Rails
J'ai fait un portfolio avec Ruby On Rails
À propos de la méthode
[Java] Découpez une partie de la chaîne de caractères avec Matcher et des expressions régulières
Refactoriser l'implémentation du pattern Decorator avec une interface fonctionnelle
Appeler une méthode avec le bloc de rappel de Kotlin depuis Java
L'histoire de la création d'un proxy inverse avec ProxyServlet
Afficher la liste en setDétails à l'écran avec ressort-sécurité
Pourquoi implémenter avec singleton au lieu de la méthode statique
Implémentation d'une API forte pour "Je veux afficher ~~ à l'écran" avec un simple CQRS
Comment réduire même un peu la charge du programme lors de la combinaison de caractères avec JAVA
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs