java réfléchissant 获 获 举

package javaHansya.main.test;

import java.util.ArrayList; import java.util.List;

public class TestMain {

public static List<String[]> csvList;

public static void main(String[] args) {

// String ty = "01"; // if (ty == CodeEnum.YOMIURI_SB.getValue()) // System.out.println("OK"); // else // System.out.println("NG"); // System.out.println(CodeEnum.getCodeEnum("SB"));

// initialisation des données csv initCsv();

// test de réflexion java CheckUtil ck = CheckUtil.getInstance(); CsvDataCheckFormat cf = new CsvDataCheckFormat (); try { ck.checkCsvData (csvList, cf); } catch (IllegalArgumentException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (IllegalAccessException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (NoSuchMethodException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (SecurityException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } }

private static void initCsv() {

// Stub de méthode généré automatiquement par TODO String [] s1 = new String [] {"", "0", "Kanji"}; String [] s2 = new String[] {"01","9",""}; String [] s3 = new String [] {"05", "", "1 2 3 4 5 6"}; csvList = new ArrayList<String[]> (); csvList.add(s1); csvList.add(s2); csvList.add(s3); }

}

package javaHansya.main.test;

import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List;

public class CheckUtil { private static CheckUtil INSTANCE = null; public static HashMap<String, Object[]> codeEnumMap = null;

 public static CheckUtil getInstance() {
       if(INSTANCE == null) {
          INSTANCE = new CheckUtil();
       }
       return INSTANCE;
    }

 private CheckUtil() {
	try {
		getCodeEnum();
	} catch (NoSuchMethodException e) {

// Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (SecurityException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (InstantiationException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (IllegalAccessException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (IllegalArgumentException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } catch (InvocationTargetException e) { // Bloc catch généré automatiquement par TODO e.printStackTrace(); } }

public void getCodeEnum() throws NoSuchMethodException, SecurityException, InstantiationException,
		IllegalAccessException, IllegalArgumentException, InvocationTargetException {

// Récupère la cible CodeEnum // CodeEnum ce = new CodeEnum (); // Class<?> codeEnumClazz = ce.getClass(); Class codeEnumClazz = CodeEnum.class; CodeEnum ce = (CodeEnum) codeEnumClazz.newInstance(); @SuppressWarnings("rawtypes") Class[] innerClazz = codeEnumClazz.getDeclaredClasses(); if (codeEnumMap == null) { codeEnumMap = new HashMap<String,Object[]> (); } for (@SuppressWarnings("rawtypes")Class tempClazz : innerClazz) { // Method method = tempClazz.getMethod("values"); // Object oj = method.invoke(null); String className = tempClazz.getName(); // System.out.println(className.substring(className.indexOf("")+1)); Method[] methods = tempClazz.getDeclaredMethods(); List list = Arrays.asList(tempClazz.getEnumConstants()); Object [] tempCodeEnumArray = new String[] {}; List tempCodeEnumList = new ArrayList (); for(Object enu : list){ for(Method method : methods){ if(method.getName().startsWith("getV")){ tempCodeEnumList.add(method.invoke(enu).toString()); // System.out.println(method.invoke(enu)); } } } tempCodeEnumArray = tempCodeEnumList.toArray(); codeEnumMap.put(className.substring(className.indexOf("")+1), tempCodeEnumArray);

// int i = tempClazz.getModifiers(); // String s = Modifier.toString(i); // Class tempEnumClazz = null; // if (s.contains("static")) { // tempEnumClazz = (Class) tempClazz.getConstructor().newInstance(); // } else { // tempEnumClazz = (Class) tempClazz.getConstructor(codeEnumClazz.getClass()).newInstance(codeEnumClazz); // } // // Method method2 = tempEnumClazz.getMethod("getValue"); // Object oj2 = method2.invoke(null); }

	String m = "";
	System.out.println(m);

// Field[] codeEnumField = codeEnumClazz.getDeclaredFields(); // String s = "";

}

public boolean checkCsvData(List<String[]> csvList, Object obj)
		throws IllegalArgumentException, IllegalAccessException, NoSuchMethodException, SecurityException {

// Récupère la cible CheckFormat Class<?> checkClazz = obj.getClass(); Field[] checkField = checkClazz.getFields();

	int dataCnt = 0;
	for (String[] tempData : csvList) {
		int colCnt = 0;
		while (colCnt < tempData.length) {
			String[] colFormat = (String[]) checkField[colCnt].get(obj);

// 1. besoin de vérifier if (!"".equals(colFormat[1])) { if (tempData[colCnt] == null || "".equals(tempData[colCnt])) { System.out.println (colFormat [0] + "est nul;" + (dataCnt + 1) + "ligne"); colCnt++; continue; } } // 2. Vérification du type / chiffre String[] typeCheck = colFormat[2].split(","); for (String tempTypeCheck : typeCheck) { switch (tempTypeCheck) { case "isNum": isNum(tempData[colCnt], colFormat[3], colFormat[4]); break; case "isNumAlp": isNumAlp(tempData[colCnt], colFormat[3], colFormat[4]); break; case "isKanji": isKanji(tempData[colCnt], colFormat[3], colFormat[4]); break; } }

// 3. Vérification du contenu de la valeur du code if (!"".equals(colFormat[5])) { Object[] codeEnumArray = codeEnumMap.get(colFormat[5]); boolean codeErr = true; for (Object oj : codeEnumArray) { if (tempData[colCnt].equals(oj)) { codeErr = false; } } if (codeErr) System.out.println ("La valeur de code ne correspond pas à la valeur définie dans CodeNum." + (DataCnt + 1) + "line"); }

			//System.out.println(colFormat);
			colCnt++;
		}
		dataCnt++;
	}
	return false;
}

private void isKanji(String columData, String min, String max) {

// Stub de méthode généré automatiquement par TODO

}

private void isNumAlp(String columData, String min, String max) {

// Stub de méthode généré automatiquement par TODO

}

private void isNum(String columData, String min, String max) {

// Stub de méthode généré automatiquement par TODO

}

}

package javaHansya.main.test;

public class CsvDataCheckFormat {

public final String [] colum1 = {"Code du siège de Yomiuri Shimbun", "Obligatoire", "isNum", "1", "3", "YOMIURI"}; public final String [] colum2 = {"code de test", "obligatoire", "isNumAlp, isTel", "1", "1", "TESTCODE"}; public final String [] colum3 = {"test kanji", "", "isKanji", "1", "5", ""}; }

package javaHansya.main.test;

public final class CodeEnum {

// Code du siège de Yomiuri Shimbun public static enum YOMIURI { YOMIURI_TY("TY","01"), YOMIURI_OS("OS","02"), YOMIURI_SB("SB","03");

	private String key;
	private String value;

	YOMIURI (String key, String value) {
		this.key = key;
		this.value = value;
	}

	public static YOMIURI getYomiuri (String key) {
		for (YOMIURI ce : YOMIURI.values()) {
			if (ce.getKey() == key) {
				return ce;
			}
		}
		return null;
	}

	public String getKey() { return key;}
	public String getValue() { return value;}
}

// Code de test 1 public static enum TESTCODE { TESTCODE_TY("TY","0"), TESTCODE_OS("OS","N"), TESTCODE_SB("SB","8");

	private String key;
	private String value;

	TESTCODE (String key, String value) {
		this.key = key;
		this.value = value;
	}

	public static TESTCODE getTestCode (String key) {
		for (TESTCODE ce : TESTCODE.values()) {
			if (ce.getKey() == key) {
				return ce;
			}
		}
		return null;
	}

	public String getKey() { return key;}
	public String getValue() { return value;}
}

}

Recommended Posts

java réfléchissant 获 获 举
Java
Java
Apprendre Java (0)
Étudier Java ―― 3
Java protégé
[Java] Annotation
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
[Java] ArrayDeque
java (remplacement)
Journée Java 2018
Chaîne Java
java (tableau)
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
java (interface)
Mémorandum Java
Tableau Java
Étudier Java ―― 1
[Java] Array
[Java] Polymorphisme
Étudier Java # 0
Revue Java
framework java
Fonctionnalités Java
[Java] Héritage
FastScanner Java
Fonctionnalités Java
java débutant 3
Mémo Java
java (encapsulation)
Héritage Java
[Java] Surcharge
Les bases de Java
Décompiler Java
[Java] Annotation
note java
java débutant
Java (add2)
JAVA (Carte)
interface [java]
Collection Java9
Les bases de Java
Méthodes Java
Journal de Java