从Class <?>创建对象

xyb*_*rek -1 java

最终,我需要能够在我的代码中执行此操作:

User result = goo.getEntity("users", "id1").getAs(User.class);  
Run Code Online (Sandbox Code Playgroud)

然而,在上面的代码,我需要显式转换的结果getEntityUser,是什么办法,使的返回类型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)

Bhe*_*ung 5

它应该是

public <T> T getAs(Class<T> clazz) {
Run Code Online (Sandbox Code Playgroud)

注意:您User result =要将返回值指定为,T而应返回返回类型Class<T>.