0
使用MongoDB,我需要保存來自Twitter4J的對象。 Twitter4J使用以JSON版本實現的接口。示例:如何訪問Twitter4J的Impl類?
API返回Status
(接口),並且Status
實現爲StatusJSONImpl
。
我不能將Status
保存到MongoDB,我需要實現StatusJSONImpl
。
我的問題是,這個類StatusJSONImpl
不公開(see here),所以我不能在我的代碼中使用它。我試圖下載Twitter4J源手動添加「public
」到StatusJSONImpl
:我可以這樣做:
Status status = twitter.updateStatus(latestStatus);
String statusStringified = TwitterObjectFactory.getRawJSON(status);
StatusJSONImpl statusImplemented = (StatusJSONImpl) TwitterObjectFactory.createUserList(statusStringified);
SingletonLaunchDB.getMongo().save(statusImplemented);
但我仍然在運行時得到類StatusJSONImpl
一個java.lang.IllegalAccessError
。
我從other SA answers看到用戶經常將其他用戶指向這個Impl類......他們如何在代碼中使用它?
非常感謝您的幫助。
無用我很抱歉。我如何獲取狀態對象的細節是不相關的,我不從命令行運行我的代碼,因此無論如何我都不需要參數[0]。是的,我可以重新實現一批Twitter4J的類,但是我的問題是關於如何避免這種錯位的努力 - 必須有更好的方法。 – seinecle
@seinecle我更新了答案,請查看。 –
它澄清,非常感謝!但是,您提到的StatusSerializationTest.java類與StatusJSONImpl位於同一個包內,這就是爲什麼它可以訪問它。我的代碼當然是位於Twitter4J之外,所以無法訪問StatusJSONImpl。有沒有一個明顯的解決辦法呢? – seinecle