Die Codekopie lautet wie folgt:
Paket com.java.db;
Import Java.lang.reflect.Constructor;
Import Java.lang.reflect.field;
importieren java.lang.reflect.invocationTargetException;
import Java.lang.reflect.Method;
Import Java.util.ArrayList;
Import Java.util.Arrays;
Import Java.util.iterator;
importieren java.util.list;
import Java.util.map;
import com.java.entity.bookshelf;
import com.java.util.getmetadatacloumname;
öffentliche Klasse GetNewinStances <T> {
Class [] cl = {};
Object [] ob = {};
/**
* Nach jedem Aufsatz auf leer eingestellt, ansonsten wird es sich ansammelt
*/
public void setnulltoArrays () {
this.cl = new class [] {};
this.ob = new Object [] {};
}
/**
* Objektarray kopieren
*
* @param obj
* Der tatsächliche Wert, der in der Konstruktionsmethode erforderlich ist
* @zurückkehren
*/
öffentliches Objekt [] getObjectArrays (Objekt obj) {
ob = arrays.copyof (ob, ob.Length + 1);
ob [ob.Length - 1] = obj;
Rückkehr OB;
}
/**
* Klassenarray kopieren
*
* @param cla
* Klasse zum Hinzufügen
*
* @zurückkehren
*/
@Suppresswarnings ("Unbekämpft")
öffentliche Klasse [] getClassArrays (Klasse <?> cla) {
if (cla! = null) {
cl = arrays.copyof (Cl, Cl.Length + 1);
CL [Cl.Length - 1] = ClA;
return cl;
}anders{
return cl;
}
}
/**
* Holen Sie sich eine Instanz der Klasse
*
* @param clazz
* Klasse, die so instanziiert werden soll
* @Return -Klasse nach der Instanziierung
* @Throws InstantiationException
* @throws illegalacessException
* @throws illegalArgumentException
* @Throws SecurityException
* @Throws InvocationTargetException
* @Throws NoSuchmethodException
*/
@Suppresswarnings ("Unbekämpft")
öffentliches Objekt getClassNewinstance (Klasse <?> Clazz)
Wirft eine Instanziationsexzeption, illegalAccessexception,
IllegalArgumentException, SecurityException,
InvocationTargetException, NoSuchMethodException {
Objekt oj = null;
Cons = clazz.getDeclaredConstructors (); // den Konstruktor Holen Sie sich
Class [] cla = cons [1] .GetParameterTypes ();
System.out.println ("Tippen Sie dem Benutzer, ob die Größe des Feldkonstruktorparameters hinzugefügt werden soll:"+cla.length);
für (int i = 0; i <cla.length; i ++) {
String classStr = cla [i] .ToString ();
// system.out.println ("Argumenttyp:"+classstr);
if (classstr.equals ("Klasse java.lang.String") {
getClassArrays (string.class);
} else if (classstr.equals ("int")) {
getClassArrays (int.Class);
} else if (classstr.equals ("double") {
getClassArrays (double.class);
} else if (classstr.equals ("boolean")) {
getClassArrays (boolean.class);
} else if (classstr.equals ("float")) {
getClassArrays (float.class);
} else if (classstr.equals ("Klasse java.lang.Inegier") {
getClassArrays (Integer.class);
} else if (classstr.equals ("Klasse java.lang.float") {
getClassArrays (float.class);
}
}
oj = clazz.newinstance (); // geben das spezifische Instanziierungskonstrukt des aktuellen Objekts in Bdoperater zurück
Rückkehr OJ;
}
/**
* Holen Sie sich bestimmte Instanzklassen über Konstruktoren
* @param clazz
* @zurückkehren
* @throws illegalArgumentException
* @Throws SecurityException
* @Throws InstantiationException
* @throws illegalacessException
* @Throws InvocationTargetException
* @Throws NoSuchmethodException
*/
öffentliches Objekt getObjcon (Klasse <?> Clazz) löst IllegalArgumentException, SecurityException, Instanziationsexception, illegalAccessexception, invocationTargetException, NoSuchmethodexception {
Objekt obj = null;
obj = this.getClassNewinstance (Clazz);
Rückkehr obj;
}
/**
* Holen Sie sich eine Instanz des Objekts
* @param clazz
* @zurückkehren
* @Throws InstantiationException
* @throws illegalacessException
*/
öffentliches Objekt GetNewinstance (Klasse Clazz) wirft eine Instanziationxzeption aus, illegalaCcessException {
Objekt obj = null;
obj = clazz.newinstance ();
Rückkehr obj;
}
/**
* Holen Sie sich alle Eigenschaften in der Klasse basierend auf der Reflexion
* @param Clazz -Klasse, die abgerufen werden muss
* @Return Attributsammlung
* @Throws SecurityException
* @throws illegalArgumentException
* @Throws InstantiationException
* @throws illegalacessException
* @Throws InvocationTargetException
* @Throws NoSuchmethodException
*/
öffentliches Feld [] GetFielsDarray (Klasse <Object> clazz) löst SecurityException, IllegalArgumentException, Instanziationsexzeption, illegale Accessexception, InvocationTargetException, NoSuchMethodException {
Field [] Fields = null;
fields = clazz.getDeclaredfields ();
Rückgabefelder;
}
/**
* Setter -Formatattribute gemäß String abrufen
* @Param STR -Eigenschaft, die formatiert werden muss
* @zurückkehren
*/
public String getSetterstr (String Str) {
String info = null;
String StrValue = str.Substring (0,1) .ToUpperCase ();
info = "set"+StrValue+str.substring (1, str.length ());
Info zurückgeben;
}
/**
* Setxx wiederherstellen auf xx
* @param str
* @zurückkehren
*/
public String setsetStr (String str) {
String info = null;
String StrValue = str.Substring (3, str.length ());
String lower = strsRalue.substring (0) .TolowerCase (). Substring (0,1);
info = niedriger+str.substring (4, str.length ());
Info zurückgeben;
}
/**
* Holen Sie sich die Methode in der Klasse
* @Param Clazz erforderte die Klasse, um die Methode zu erhalten
* @zurückkehren
*/
public methode [] getMethodsArray (Klasse Clazz) {
Methode [] methods = clazz.getMethods ();
Rückgabemethoden;
}
/**
* Instantieren Sie den Konstruktor gemäß der Liste <Map>
* @param listmap
* @param clazz
* @param tableName -Datenbankname
* @zurückkehren
* @Throws NoSuchmethodException
* @Throws InvocationTargetException
* @Throws SecurityException
* @throws illegalArgumentException
* @throws illegalacessException
* @Throws InstantiationException
*/
@SuppressWarnings ({"Unbekämpft"})
Public List <Object> getListByMap (List <map <String, Objekt >> Listmap, Klasse Clazz, String TabLName) löst die Instanziationsexzeption, IllegalAccessException, IllegalArgumentException, SecurityException, InvocationTargetException, NoSuchmethodexception {
List <Object> listLast = new ArrayList <Object> ();
List <String> metallist = getMetAdatacloumname.getCloumnamelist (TableName);
Iterator <map <String, Objekt >> it = listMap.Iderator ();
while (it.hasnext ()) {
Karte <String, Objekt> map = it.next ();
Iterator <string> iitt = metallist.Iterator ();
während (iitt.hasnext ()) {
String info = iitt.Next ();
this.getObjectArrays (map.get (info));
}
System.out.println ("Reflexion:"+this.cl.length+""+this.ob.length);
Objekt tobj = this.getClassNewinstance (Clazz) .GetClass (). GetConstructor (this.cl) .Newinstance (this.ob);
listLast.add (tobj);
this.setnullToArrays ();
}
Rückkehr ListLast;
}
public static void main (String [] args) {
GetNewinStances Ge = New getNeWinstances ();
System.out.println (Ge.GetSetterStr ("Namespace") == "setNamePace");
System.out.println ("1a" == "1a");
System.out.println (Ge.SetSetStr ("setNamePace"));
}
}