Java反射是指程序在運(yùn)行時(shí)動(dòng)態(tài)地獲取類信息和調(diào)用對(duì)象方法的能力。Java中有三種方式可以實(shí)現(xiàn)反射:
1.獲取Class對(duì)象的方式:Java中有三種獲取Class對(duì)象的方式,分別是Class.forName()、類名.class和對(duì)象.getClass()。
2.通過(guò)Class對(duì)象獲取類的信息:獲取類信息的方法有很多,常見的有以下幾種:getPackage()、getFields()、getDeclaredFields()、getConstructors()、getMethods()、getDeclaredMethods()等。
3.調(diào)用對(duì)象的方法:可以通過(guò)反射調(diào)用對(duì)象的方法,常見的方法有以下幾種:getMethod()、getDeclaredMethod()、invoke()等。其中g(shù)etMethod()和getDeclaredMethod()的區(qū)別是前者只能獲取public方法,而后者可以獲取所有訪問(wèn)權(quán)限的方法。invoke()方法則可以用于調(diào)用方法并傳遞參數(shù)。