【對(duì)線(xiàn)面試官】Java反射 && 動(dòng)態(tài)代理








//?抽象類(lèi),定義泛型
public?abstract?class?BaseDao<T>?{
????public?BaseDao(){
????????Class?clazz?=?this.getClass();
????????ParameterizedType??pt?=?(ParameterizedType)?clazz.getGenericSuperclass();?
????????clazz?=?(Class)?pt.getActualTypeArguments()[0];
????????System.out.println(clazz);
????}
}
//?實(shí)現(xiàn)類(lèi)
public?class?UserDao?extends?BaseDao<User>?{
????public?static?void?main(String[]?args)?{
????????BaseDao?userDao?=?new?UserDao();
????}
}
//?執(zhí)行結(jié)果輸出
class?com.entity.User




過(guò)了一天,面試官看大家三連了。又給我補(bǔ)充了道題:都說(shuō)反射會(huì)影響性能,有什么方式可以減低它的性能影響嗎?
答案:可以使用緩存把反射的元數(shù)據(jù)存儲(chǔ)起來(lái),下一次使用的時(shí)候就可以直接從內(nèi)存獲取了。盡可能使用高性能的反射框架(都幫你封裝好了,不用自己實(shí)現(xiàn))。
在開(kāi)發(fā)過(guò)程中,其實(shí)很多時(shí)候也不用考慮反射會(huì)對(duì)性能帶來(lái)嚴(yán)重的影響。與其寫(xiě)一堆亂七八糟的代碼,還不如用反射來(lái)讓代碼更加“好看”。
歡迎添加我的私人微信進(jìn)一步交流和學(xué)習(xí),也可以來(lái)一場(chǎng)朋友圈點(diǎn)贊之交
如果顯示頻繁,微信手動(dòng)搜索【sanwaiyihao】添加即可
評(píng)論
圖片
表情
