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