該如何提高使用Java反射的效率?
大概有這些方法:
1,緩存要調(diào)用的類型、對象實例或方法,減少調(diào)用Class.forName、構(gòu)造對象和 getMethod 的次數(shù),如使用hashmap來緩存。如果要支持熱部署,需要控制好緩存和版本的關(guān)系。
2,在緩存的基礎(chǔ)上,盡量用接口來實現(xiàn)方法調(diào)用,而不是使用invoke。
吐槽下,java里沒有委托(函數(shù)指針),干這事效率最高的就是使用委托。
該如何提高使用Java反射的效率?
大概有這些方法:
1,緩存要調(diào)用的類型、對象實例或方法,減少調(diào)用Class.forName、構(gòu)造對象和 getMethod 的次數(shù),如使用hashmap來緩存。如果要支持熱部署,需要控制好緩存和版本的關(guān)系。
2,在緩存的基礎(chǔ)上,盡量用接口來實現(xiàn)方法調(diào)用,而不是使用invoke。
吐槽下,java里沒有委托(函數(shù)指針),干這事效率最高的就是使用委托。