Кода -копия выглядит следующим образом:
пакет com.java.db;
импортировать java.lang.reflect.constructor;
импортировать java.lang.reflect.field;
Импорт java.lang.reflect.invocationTargetException;
импортировать java.lang.reflect.method;
импортировать java.util.arraylist;
импортировать java.util.arrays;
импортировать java.util.iterator;
импортировать java.util.list;
импортировать java.util.map;
Импорт com.java.entity.bookshelf;
импорт com.java.util.getmetadatacloumname;
открытый класс getNewinStances <t> {
Class [] cl = {};
Object [] ob = {};
/**
* Установите на пустые после каждого использования, в противном случае он накапливается
*/
public void setnullToarrays () {
this.cl = новый класс [] {};
this.ob = новый объект [] {};
}
/**
* Скопировать массив объектов
*
* @param obj
* Фактическое значение, необходимое в методе строительства
* @возвращаться
*/
public Object [] getObjectarrays (Object obj) {
ob = arrays.copyof (ob, ob.length + 1);
ob [ob.length - 1] = obj;
вернуть OB;
}
/**
* Копировать класс массив
*
* @param cla
* Класс, чтобы добавить
*
* @возвращаться
*/
@Suppresswarnings ("не контролировано")
открытый класс [] getClassarrays (class <?> cla) {
if (cla! = null) {
cl = arrays.copyof (cl, cl.length + 1);
cl [cl.length - 1] = cla;
возврат Cl;
}еще{
возврат Cl;
}
}
/**
* Получить экземпляр класса
*
* @param clazz
* Класс для создания экземпляра
* @return Class после экземпляра
* @Throws InstantiationException
* @throws allogalaccessexception
* @Throws allogalArgumentException
* @Throws SecurityException
* @Throws vocationTargetException
* @Throws nosuchmethodexception
*/
@Suppresswarnings ("не контролировано")
public Object getClassnewinstance (класс <?> clazz)
бросает instantiationException, нелегалаксексекция,
AllosleargumentException, SecurityException,
VocationTargetException, nosuchmethodexception {
Объект oj = null;
Nes = clazz.getDeclaredConstructors (); // Получить конструктор
Class [] cla = cons [1] .getParameterTypes ();
System.out.println («Наденьте пользователя, чтобы добавить размер параметра конструктора поля:"+cla.length);
для (int i = 0; i <cla.length; i ++) {
String classstr = cla [i] .toString ();
// system.out.println ("Тип аргумента:"+classstr);
if (classstr.equals ("class 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 ("class java.lang.integer")) {
GetClassarrays (Integer.class);
} else if (classstr.equals ("class java.lang.float")) {
GetClassarrays (float.class);
}
}
oj = clazz.newinStance (); // Возврат конкретной конструкции экземпляра текущего объекта в Bdoperater
вернуть OJ;
}
/**
* Получить конкретные классы экземпляров через конструкторы
* @param clazz
* @возвращаться
* @Throws allogalArgumentException
* @Throws SecurityException
* @Throws InstantiationException
* @throws allogalaccessexception
* @Throws vocationTargetException
* @Throws nosuchmethodexception
*/
Общедоступный объект getObjcon (class <?> clazz) выбрасывает allodalargumentException, securityException, instantiationException, allectalaccessexception, vococationTargetException, nosuchmethodexception {
Объект obj = null;
obj = this.getClassnewinStance (clazz);
вернуть OBJ;
}
/**
* Получите экземпляр объекта
* @param clazz
* @возвращаться
* @Throws InstantiationException
* @throws allogalaccessexception
*/
открытый объект getNewinStance (класс clazz) бросает InstantiationException, allosalAccessException {
Объект obj = null;
obj = clazz.newinstance ();
вернуть OBJ;
}
/**
* Получите все свойства в классе на основе отражения
* @param clazz class, который необходимо получить
* @return Collection Attribute
* @Throws SecurityException
* @Throws allogalArgumentException
* @Throws InstantiationException
* @throws allogalaccessexception
* @Throws vocationTargetException
* @Throws nosuchmethodexception
*/
Общественное поле [] GetFielsDarray (Class <object> clazz) бросает SecurityException, allodalargumentException, instantiationException, allectalaccessexception, vococationTargetException, nosuchmethodexception {
Field [] fields = null;
fields = clazz.getDeclaredFields ();
поля возврата;
}
/**
* Получить атрибуты формата сеттера в соответствии со строкой
* @param str свойство, которое необходимо отформатировать
* @возвращаться
*/
public String getSetterstr (String str) {
String info = null;
String strvalue = str.substring (0,1) .touppercase ();
info = "set"+strvalue+str.substring (1, str.length ());
вернуть информацию;
}
/**
* Восстановить SETXX в XX
* @param str
* @возвращаться
*/
public String setsetStr (String Str) {
String info = null;
String strvalue = str.substring (3, str.length ());
String lower = strValue.substring (0) .tolowerCase (). Substring (0,1);
info = lower+str.substring (4, str.length ());
вернуть информацию;
}
/**
* Получите метод в классе
* @param clazz требуется класс, чтобы получить метод
* @возвращаться
*/
публичный метод [] getMethodSarray (класс Clazz) {
Method [] methods = clazz.getMethods ();
методы возврата;
}
/**
* Создание конструктора в соответствии с списком <Map>
* @param listmap
* @param clazz
* @param TableName Имя базы данных
* @возвращаться
* @Throws nosuchmethodexception
* @Throws vocationTargetException
* @Throws SecurityException
* @Throws allogalArgumentException
* @throws allogalaccessexception
* @Throws InstantiationException
*/
@Suppresswarnings ({"unchecked"})
Публичный список <object> getListBymap (list <map <string, Object >> ListMap, класс Clazz, String TableName) Throws IntantiationException, allodalAccessexception, allogalargumentException, SecurityException, InvocationTargetExcept
List <Object> listLast = new ArrayList <Object> ();
List <string> metalist = getMetAdatacloumName.getCloumMamelist (TableName);
Iterator <map <string, object >> it = listmap.iterator ();
while (it.hasnext ()) {
Map <string, object> map = it.next ();
Итератор <string> iitt = metalist.iterator ();
while (iitt.hasnext ()) {
String info = iitt.next ();
this.getObjectarrays (map.get (info));
}
System.out.println ("Call Reflection:"+this.cl.length+""+this.ob.length);
Object tobj = this.getClassNewinStance (clazz) .getClass (). GetConstructor (this.cl) .newinstance (this.ob);
listlast.add (tobj);
this.setnulltoarrays ();
}
return Listlast;
}
public static void main (string [] args) {
GetNewinStances ge = new getNewinStances ();
System.out.println (ge.getSetterstr ("пространство имен") == "setNamespace");
System.out.println ("1a" == "1a");
System.out.println (ge.setsetStr ("setNamespace"));
}
}