2010-10-15 68 views
3

首先,這不是我想要做的一些正常的操作,但是這個附帶案例涉及到大量遺留代碼,我不能觸及,需要編寫的單元測試用於新的東西。你能反映一個私有靜態方法在Java中

無論如何,我有一個類,我可以通過反射訪問所有的字段和方法,除了私人/保護靜態的。那麼有沒有辦法通過反射來訪問這些私有靜態方法?

回答

7
Method method = Foo.class.getDeclaredMethod("methodName"); 
method.setAccessible(true); 
Object result = method.invoke(null); 
+0

哇,搜索了幾個小時後,我從來不知道class.getMethod()和class.getDeclaredMethod()之間有區別...乾杯 – Grofit 2010-10-15 08:42:22

0

嘗試powermock。這是一個測試庫,可以做各種你不應該在綠地開發中的東西。

0

包裝那些可以被對象訪問的方法。我相信着名的IDE已經爲此目的而重構了工具(類包裝)。