การคัดลอกรหัสมีดังนี้:
แพ็คเกจ 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> {
คลาส [] cl = {};
วัตถุ [] ob = {};
-
* ตั้งค่าให้ว่างหลังจากใช้แต่ละครั้งมิฉะนั้นจะสะสม
-
โมฆะสาธารณะ setnulltoarrays () {
this.cl = คลาสใหม่ [] {};
this.ob = วัตถุใหม่ [] {};
-
-
* คัดลอกอาร์เรย์วัตถุ
-
* @param obj
* มูลค่าจริงที่ต้องการในวิธีการก่อสร้าง
* @กลับ
-
วัตถุสาธารณะ [] getObjectArrays (Object obj) {
ob = arrays.copyof (ob, ob.length + 1);
ob [ob.length - 1] = obj;
กลับ OB;
-
-
* คัดลอกอาร์เรย์คลาส
-
* @param cla
* คลาสที่จะเพิ่ม
-
* @กลับ
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
คลาสสาธารณะ [] getClassArrays (คลาส <?> cla) {
ถ้า (cla! = null) {
cl = arrays.copyof (cl, cl.length + 1);
cl [cl.length - 1] = cla;
กลับ CL;
}อื่น{
กลับ CL;
-
-
-
* รับอินสแตนซ์ของคลาส
-
* @param clazz
* คลาสที่จะสร้างอินสแตนซ์
* @return class หลังจากการสร้างอินสแตนซ์
* @throws InstantiationException
* @throws unlileclaccessexception
* @THROWS leLLELLARGumentException
* @throws SecurityException
* @throws InvocationTargetException
* @throws nosuchmethodexception
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
วัตถุสาธารณะ GetClassNewInstance (คลาส <?> Clazz)
พ่น InstantiationException, ungleclaccessexception,
orderalargumentException, SecurityException,
InvocationTargetException, nosuchmethodexception {
Object OJ = null;
ข้อเสีย = clazz.getDeclaredConstructors (); // รับตัวสร้าง
คลาส [] 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 ("คลาส java.lang.string")) {
getClassArrays (String.class);
} อื่นถ้า (classstr.equals ("int")) {
getClassArrays (int.class);
} อื่นถ้า (classstr.equals ("double")) {
getClassArrays (double.class);
} อื่นถ้า (classstr.equals ("boolean")) {
getClassArrays (boolean.class);
} อื่นถ้า (classstr.equals ("float")) {
getClassArrays (float.class);
} อื่นถ้า (classstr.equals ("คลาส java.lang.integer")) {
getClassArrays (Integer.class);
} อื่นถ้า (classstr.equals ("คลาส java.lang.float")) {
getClassArrays (float.class);
-
-
oj = clazz.newinstance (); // ส่งคืนการสร้างอินสแตนซ์เฉพาะของวัตถุปัจจุบันใน bdoperater
กลับ OJ;
-
-
* รับคลาสอินสแตนซ์เฉพาะผ่านตัวสร้าง
* @param clazz
* @กลับ
* @THROWS leLLELLARGumentException
* @throws SecurityException
* @throws InstantiationException
* @throws unlileclaccessexception
* @throws InvocationTargetException
* @throws nosuchmethodexception
-
วัตถุสาธารณะ getObjcon (คลาส <?> clazz) โยน islendalargumentException, SecurityException, InstantiationException, ungleclAccessException, InvocationTargetException, nosuchmethodexception {
วัตถุ obj = null;
obj = this.getClassNewInstance (clazz);
คืน OBJ;
-
-
* รับอินสแตนซ์ของวัตถุ
* @param clazz
* @กลับ
* @throws InstantiationException
* @throws unlileclaccessexception
-
วัตถุสาธารณะ GetNewinstance (Class CLAZZ) โยน InstantiationException, ungleclAccessException {
วัตถุ obj = null;
obj = clazz.newinstance ();
คืน OBJ;
-
-
* รับคุณสมบัติทั้งหมดในชั้นเรียนตามการสะท้อนกลับ
* @param Clazz Class ที่ต้องเรียกคืน
* @return Attribute Collection
* @throws SecurityException
* @THROWS leLLELLARGumentException
* @throws InstantiationException
* @throws unlileclaccessexception
* @throws InvocationTargetException
* @throws nosuchmethodexception
-
เขตข้อมูลสาธารณะ [] GetFielsdarray (คลาส <Ojrop> CLAZZ) โยนความปลอดภัย Exception, orderalargumentException, InstantiationException, ungleclAccessException, InvocationTargetException, nosuchmethodexception {
ฟิลด์ [] ฟิลด์ = null;
ฟิลด์ = clazz.getDeclaredFields ();
เขตข้อมูลกลับ;
-
-
* รับแอตทริบิวต์รูปแบบ setter ตามสตริง
* คุณสมบัติ @param Str ที่ต้องจัดรูปแบบ
* @กลับ
-
Public String GetsetTerstr (String Str) {
สตริงข้อมูล = null;
String strvalue = str.substring (0,1) .touppercase ();
info = "set"+strvalue+str.substring (1, str.length ());
ข้อมูลส่งคืน;
-
-
* กู้คืน setxx เป็น xx
* @param str
* @กลับ
-
SetSetStr String สาธารณะ (String Str) {
สตริงข้อมูล = null;
String strvalue = str.substring (3, str.length ());
สตริงที่ต่ำกว่า = strvalue.substring (0) .ToLowerCase (). substring (0,1);
info = ล่าง+str.substring (4, str.length ());
ข้อมูลส่งคืน;
-
-
* รับวิธีการในชั้นเรียน
* @Param Clazz ต้องใช้คลาสเพื่อรับวิธีการ
* @กลับ
-
วิธีการสาธารณะ [] getMethodsarray (คลาส Clazz) {
วิธี [] วิธีการ = clazz.getMethods ();
วิธีการส่งคืน;
-
-
* อินสแตนซ์คอนสตรัคเตอร์ตามรายการ <pal>
* @param ListMap
* @param clazz
* @Param ชื่อฐานข้อมูลชื่อ
* @กลับ
* @throws nosuchmethodexception
* @throws InvocationTargetException
* @throws SecurityException
* @THROWS leLLELLARGumentException
* @throws unlileclaccessexception
* @throws InstantiationException
-
@suppresswarnings ({"ไม่ได้ตรวจสอบ"})
รายการสาธารณะ <Ojrop> getListByMap (รายการ <แผนที่ <สตริง, วัตถุ >> ListMap, คลาส Class, string tablename) โยน InstantiationException, ungleclAccessException, unlegalArgumentException, SecurityException, InvocationTargetException, NosuchMethodexception {
รายการ <jobch> listlast = new ArrayList <Object> ();
รายการ <String> metalist = getMetAdatacloumname.getClouMnamelist (tablename);
Iterator <map <string, object >> it = listmap.iterator ();
ในขณะที่ (it.hasnext ()) {
แผนที่ <สตริงวัตถุ> map = it.next ();
ตัววนซ้ำ <String> iitt = metalist.iterator ();
ในขณะที่ (iitt.hasnext ()) {
String info = iitt.next ();
this.getObjectArrays (map.get (ข้อมูล));
-
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;
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
getNewinstances ge = new getNewinstances ();
System.out.println (ge.getSettersstr ("namespace") == "setNamespace");
System.out.println ("1a" == "1a");
System.out.println (ge.setsetstr ("setnamespace"));
-
-