確かにすでに尋ねられて申し訳ありませんが、必要なものが見つかりませんでした
。いくつかのメッセージタイプがあります。
class AbstractMessage {
int code;
String token;
}
class ShareMessage extends AbstractMessage{
String user;
Map<String, String> friends;
}
class PostMessage extends AbstractMessage{
String user;
Map<String, String> data;
}
そして、json投稿メッセージからそれらをデコードする方法:
public Object getMessage(BufferedReader r, Type t){
Object o = null;
try{
o = g.fromJson(r, t);
} catch (final JsonSyntaxException e) {
LOGGER.info("Error in Json format", e);
} catch (final JsonParseException e) {
LOGGER.info("Error in parsing Json", e);
}
return o;
}
次に、たとえば:
Type dataType = new TypeToken<PostMessage>() {}.getType();
PostMessage m = (PostMessage) getMessage(request.getReader(), dataType);
動作しますが、醜いです。パラメータ化されたgetMessage関数、またはObjectを返して
thxをキャストするよりも優れた関数を使用するにはどうすればよいですか。