[Java] Reflash des valeurs pour tous les éléments de BeanClass

Méthode courante souvent utilisée au travail avant ```java Votre interlocuteur.java { return (GetChangeAddressDialogInfoOutDto) CommonUtil.refreshServOutDto(serviceOutDto); }

■CommonUtil.java /** *Reresh ServiceOutDto
* (String Type : Null -> Blank) * * @param bean * @return Object */ public static Object refreshServOutDto(Object bean) { if (bean != null) { return refreshServOutDto(bean, StringUtils.EMPTY); } return bean; }

/**
 *Reresh ServiceOutDto
 * 
 * @param bean
 * @param defaultStr
 * @return Object
 */
@SuppressWarnings({"rawtypes", "unchecked"})
public static Object refreshServOutDto(Object bean, String defaultStr) {
    if (bean != null) {
        Map bMap = new BeanMap(bean);
        HashMap hMap = new HashMap(bMap);
        hMap.remove("class");
        Iterator itr = hMap.keySet().iterator();
        while (itr.hasNext()) {
            String propNm = (String) itr.next();
            reSetter(bean, propNm, defaultStr);
        }
    }
    return bean;
}

/**
 *Convertir Null en vide
 * 
 * @param bean
 * @param propNm
 * @param defaultStr
 */
@SuppressWarnings("rawtypes")
public static <T> void reSetter(Object bean, String propNm, String defaultStr) {
    //Préparez un descripteur
    PropertyDescriptor nameProp;
    try {
        nameProp = new PropertyDescriptor(propNm, bean.getClass());
        //Acquisition de la méthode Getter
        Method nameGetter = nameProp.getReadMethod();
        Object nowVal = nameGetter.invoke(bean, (Object[]) null);

        //Obtenir la méthode du setter
        Method nameSetter = nameProp.getWriteMethod();
        String PropType = nameProp.getPropertyType().toString();
        if (PropType.endsWith("java.util.List")) {
            //Tableau
            if (nowVal == null) {
                nameSetter.invoke(bean, (List) new ArrayList());
            }
        } else if (PropType.endsWith("java.lang.String")) {
            //Chaîne
            String tmpStr = (String) nowVal;
            tmpStr = StringUtils.defaultIfEmpty(((String) nowVal), defaultStr);
            // "null"/"NULL"/"Null"Si, convertir
            if (Objects.equal(tmpStr.toLowerCase(), "null")) {
                tmpStr = defaultStr;
            }
            nameSetter.invoke(bean, tmpStr);
        } else if (PropType.endsWith("int")) {
            // int

        } else if (PropType.endsWith("java.lang.Number")) {
            // Number

        } else if (PropType.endsWith("boolean")) {
            // boolean

        } else if (PropType.endsWith("java.util.Date")) {
            // Date

        } else if (PropType.matches(".*com\\.smbc_card\\.credit\\.compass\\.service\\.dto\\..+")) {
            // Java Bean Class (ex.Adresse etc.)
            if (nowVal == null) {
                nameSetter.invoke(    bean,
                                    refreshServOutDto(getClassForName(
                                                                        PropType.replaceFirst(    "class ",
                                                                                                StringUtils.EMPTY))
                                        .newInstance()));
            }
        }
    } catch (IntrospectionException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
        | InstantiationException | ClassNotFoundException e) {
        System.out.println("Informations anormales:" + e);
    }
}

/**
 * getClassForName
 * 
 * @param className
 * @return Class<T>
 * @throws ClassNotFoundException
 */
@SuppressWarnings("unchecked")
public static <T> Class<T> getClassForName(String className) throws ClassNotFoundException {
    return (Class<T>) Class.forName(className);
}


Recommended Posts

[Java] Reflash des valeurs pour tous les éléments de BeanClass
Toutes les mêmes chaînes de code de hachage en Java
Partition en Java
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Obtention des objets Locale pour tous les paramètres régionaux disponibles en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Tout sur la programmation Java
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Essayez d'utiliser RocksDB avec Java
Lire des fichiers binaires en Java 1
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
[Neta] Sleep Sort en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Segfo Java en 6 lignes
Essayez d'appeler JavaScript en Java
Essayez de développer Spresense avec Java (1)
Essayez le type fonctionnel en Java! ①
J'ai fait une roulette à Java.
Implémentation de l'authentification en deux étapes en Java
Refactoring: faire du Blackjack en Java
Ecrire des rappels de vol en Java
Analyse de sujets (LDA) en Java
Importer des données Excel avec Java 2
Prétraitement NEologd en Java neologdn-java