最終的には、コードでこれを実行できる必要があります。
User result = goo.getEntity("users", "id1").getAs(User.class);
ただし、上記のコードでは、の結果を明示的にキャストする必要がありますgetEntity
。User
これは、の戻り型がgetAs
メソッドに入力された.classに関係なくなるようにするためのアプローチです。
基になる疑似コードは次のとおりです。
public class EntityType {
Map json = null;
public EntityType(Map json){
this.json = json;
}
public Class<?> getAs(Class<?> clazz){
// create clazz object from json map
}
}
public EntityType getEntity(String kind, String id){
Map json = getFromServer(kind, id);
EntityType entity = new EntityType(json);
return entity;
}