Java reflektierend 获 获 举

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"));

// CSV-Dateninitialisierung initCsv();

// Java Reflection Test CheckUtil ck = CheckUtil.getInstance(); CsvDataCheckFormat cf = new CsvDataCheckFormat (); try { ck.checkCsvData (csvList, cf); } catch (IllegalArgumentException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (IllegalAccessException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (SecurityException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } }

private static void initCsv() {

// TODO automatisch generierter Methodenstub String [] s1 = neuer String [] {"", "0", "Kanji"}; String [] s2 = new String[] {"01","9",""}; String [] s3 = neuer 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) {

// TODO automatisch generierter Fangblock e.printStackTrace(); } catch (SecurityException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (InstantiationException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (IllegalAccessException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } catch (InvocationTargetException e) { // TODO automatisch generierter Fangblock e.printStackTrace(); } }

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

// CodeEnum-Ziel abrufen // 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 {

// CheckFormat-Ziel abrufen 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. muss geprüft werden if (!"".equals(colFormat[1])) { if (tempData[colCnt] == null || "".equals(tempData[colCnt])) { System.out.println (colFormat [0] + "ist null;" + (dataCnt + 1) + "line"); colCnt++; continue; } } // 2. Typprüfung prüfen 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. Überprüfung des Inhalts des Codewerts 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 ("Der Codewert stimmt nicht mit dem in CodeNum definierten Wert überein." + (DataCnt + 1) + "line"); }

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

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

// TODO automatisch generierter Methodenstub

}

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

// TODO automatisch generierter Methodenstub

}

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

// TODO automatisch generierter Methodenstub

}

}

package javaHansya.main.test;

public class CsvDataCheckFormat {

public final String [] colum1 = {"Code des Yomiuri Shimbun-Hauptquartiers", "Erforderlich", "isNum", "1", "3", "YOMIURI"}; public final String [] colum2 = {"Testcode", "erforderlich", "isNumAlp, isTel", "1", "1", "TESTCODE"}; public final String [] colum3 = {"test kanji", "", "isKanji", "1", "5", ""}; }

package javaHansya.main.test;

public final class CodeEnum {

// Code des Yomiuri Shimbun-Hauptquartiers 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;}
}

// Testcode 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 reflektierend 获 获 举
Java
Java
Java lernen (0)
Java studieren ―― 3
Java geschützt
[Java] Anmerkung
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java (Konstruktor)
Java-Array
[Java] ArrayDeque
Java (überschreiben)
Java Day 2018
Java-Zeichenfolge
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java (gesetzt)
Java-Shell-Sortierung
[Java] compareTo
Java studieren -5
Java (Schnittstelle)
Java-Memorandum
Java-Array
Java studieren ―― 1
[Java] Array
[Java] Polymorphismus
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
[Java] Vererbung
FastScanner Java
Java-Funktionen
Java Anfänger 3
Java-Memo
Java (Kapselung)
Java-Vererbung
[Java] Überladung
Java-Grundlagen
Java dekompilieren
[Java] Anmerkung
Java Note
Java Anfänger
Java (add2)
JAVA (Karte)
[Java] -Schnittstelle
Java9-Sammlung
Java-Grundlagen
Java-Methoden
Java-Tagebuch