-1
我正在使用反射來訪問Singleton的類方法。這裏有什麼最佳實踐或陷阱?在此先感謝反射的Java Singleton訪問
我正在使用反射來訪問Singleton的類方法。這裏有什麼最佳實踐或陷阱?在此先感謝反射的Java Singleton訪問
嗯,有一般的「反思是緩慢的,只應作爲最後的手段」的最佳實踐,但我遵循的準則,從簡單到先進:
Method
或Field
或Constructor
您從反射查找中獲得的實例。反覆查找他們是慢。WeahHashMap
或相似,以至於它們卸載時的類卸載這樣你就不會從緩存中泄漏的類引用Method
對象轉換爲MethodHandles
,然後用LambdaMetaFactory
將它們變成一個Function<Object[],Object>
,這幾乎與編譯的方法引用一樣快。 仍然緩存助手功能,因爲創建它們是昂貴的。