最终,我需要能够在我的代码中执行此操作:
User result = goo.getEntity("users", "id1").getAs(User.class);
Run Code Online (Sandbox Code Playgroud)
然而,在上面的代码,我需要显式转换的结果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;
}
Run Code Online (Sandbox Code Playgroud)
它应该是
public <T> T getAs(Class<T> clazz) {
Run Code Online (Sandbox Code Playgroud)
注意:您User result =要将返回值指定为,T而应返回返回类型Class<T>.
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |