Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics RestyGWT是否适用于泛型和多态类?_Generics_Gwt_Polymorphism_Requestfactory_Resty Gwt - Fatal编程技术网

Generics RestyGWT是否适用于泛型和多态类?

Generics RestyGWT是否适用于泛型和多态类?,generics,gwt,polymorphism,requestfactory,resty-gwt,Generics,Gwt,Polymorphism,Requestfactory,Resty Gwt,我在gwt与请求工厂斗争。我可以让它与泛型和多态类一起工作。请看这里: 我考虑切换到restygwt作为传输层。 这是一个新的应用程序,因此没有太多需要重写的内容。 我以为射频能满足我的需要,不幸的是我没能让它工作。所以我想到了Resty 请告诉我它是否适用于泛型和多态类,如下所示: @MappedSuperclass public class GenericModel<T extends GenericModel<T>> implements Identifia

我在gwt与请求工厂斗争。我可以让它与泛型和多态类一起工作。请看这里:

我考虑切换到restygwt作为传输层。 这是一个新的应用程序,因此没有太多需要重写的内容。 我以为射频能满足我的需要,不幸的是我没能让它工作。所以我想到了Resty

请告诉我它是否适用于泛型和多态类,如下所示:

@MappedSuperclass
public  class GenericModel<T extends GenericModel<T>> implements Identifiable, Versionable {
    getId();
    getVersion();
}

@MappedSuperclass
public abstract class GenericDictionaryModel<T extends GenericModel<T>> extends GenericModel<T> {        getName();
    getActive();
}

@Entity class VocabularyDictionaryModel extends GenericDictionaryModel {
    someCustomeMethod();
}


public class GenericDao<T extends GenericModel<T>> {
    public List<GenericModel<T>> getList() {
        return JPA.em().createQuery("FROM " + entityClass.getSimpleName()).getResultList();
    }
}



public class GenericDictionaryDao<T extends GenericDictionaryModel<T>> extends GenericDao<T>{
    public List<GenericDictionaryModel<T>> getListOrderedByName() {
        try {
            return JPA.em()
                      .createQuery("FROM " + entityClass.getSimpleName() + " ORDER BY name")
                      .getResultList();
        } catch (ClassCastException e) {
            return new LinkedList<GenericDictionaryModel<T>>();
        }
    }
}
@MappedSuperclass
公共类GenericModel实现可识别的、可版本化的{
getId();
getVersion();
}
@映射超类
公共抽象类GenericDictionaryModel扩展了GenericModel{getName();
getActive();
}
@实体类VocabularyDictionaryModel扩展了GenericDictionaryModel{
someCustomeMethod();
}
公共类GenericDao{
公共列表getList(){
返回JPA.em().createQuery(“FROM”+entityClass.getSimpleName()).getResultList();
}
}
公共类GenericDictionaryDao扩展了GenericDao{
公共列表getListOrderedByName(){
试一试{
返回JPA.em()
.createQuery(“来自”+entityClass.getSimpleName()+“按名称排序”)
.getResultList();
}catch(ClassCastException e){
返回新的LinkedList();
}
}
}

是的,在Resty中使用泛型应该不会有问题。您将不得不对Jackson注释进行一些处理,以使其适合继承。主要是
@JsonSubTypes
@JsonTypeName

请记住,您将不得不或多或少地自己处理错误。与rf相比,rest应用程序的代码要多得多,但它使您的API在更多平台类型之前更具可移植性

下面是一个你所问问题的例子。我经常使用单元测试来解决一些边缘问题


出于好奇,您的射频还有什么问题?有错误吗?通过查看您的其他问题,我感觉您遇到了一个我遇到的问题,即除非在子实体类型的RequestContext中声明该方法,否则无法调用该方法。这意味着如果扩展GenericContext,则必须在子RequestContext接口中再次添加该方法。这是额外的工作,但它允许我在想要使代码干净时使用GenericContext作为一个工具。我希望避免代码重复。我很惊讶通用的软件不能开箱即用。我仍然在与RF斗争。