2016-04-19 7 views
0

は、私はTwitter4Jからオブジェクトを永続化する必要があります。 Twitter4JはJSONバージョンで実装されているインターフェースを使用しています。例:Twitter4JのImplクラスにアクセスするには? MongoDBのを使用して

APIはStatus(インターフェイス)を返し、StatusStatusJSONImplとして実装されています。

私はMongoDBのにStatusを保存することはできません、私はStatusJSONImplを実装する必要があります。

私の問題は、このクラスStatusJSONImplは公開されていません(see here)ので、私のコードで使用することはできません。

Status status = twitter.updateStatus(latestStatus);  
String statusStringified = TwitterObjectFactory.getRawJSON(status); 
StatusJSONImpl statusImplemented = (StatusJSONImpl) TwitterObjectFactory.createUserList(statusStringified); 
SingletonLaunchDB.getMongo().save(statusImplemented); 

しかし、私はまだ、実行時にクラス StatusJSONImpljava.lang.IllegalAccessErrorを取得:私が行うことができます:私は手動で StatusJSONImplに「 public」を追加するTwitter4Jのソースをダウンロードしてみました。

私は、彼らが自分のコードでそれを使用するために行うのですか...ユーザーが日常このImplをクラスに他のユーザーを指していることother SA answersから参照してください?

お手数をおかけします。

答えて

0

ステータスは直列化可能です。回復するにはStatusJSONImplからstatusStringifiedに書き込むことができます。

JSONObject json = new JSONObject(statusStringified); 
Status status = new StatusJSONImpl(json); 

のコードサンプルは、StatusSerializationTest.java

から私はこれが役に立てば幸いです。

+0

は役に立たなかった私は申し訳ありません。私はStatusオブジェクトを取得する方法の詳細は無関係である、と私はとにかくビット[0]引数を必要としないので、私は、コマンドラインからの私のコードを実行しないでください。はい、私はTwitter4Jのクラスのダースを再実装することができますが、私の質問は、私がこの誤った取り組みを惜しまない方法についてです - より良い方法が必要です。 – seinecle

+0

@seinecle私は答えを更新しました、それを確認してください。 –

+0

それは明らかに、ありがとう!しかし、あなたが言及しているStatusSerializationTest.javaクラスは、StatusJSONImplと同じパッケージ内にあります。なぜなら、それがそのクラスにアクセスできる理由です。私のコードはもちろんTwitter4Jの外にあるので、StatusJSONImplにアクセスすることはできません。これには明らかな解決策がありますか? – seinecle

関連する問題