我正在使用 Play 框架。
我想使用带有 2 个对象的函数 renderJSON 作为参数。似乎不可能,所以我试图创建一个包含 2 个对象的类。为了不必每次都创建一个新类,我想使用泛型,但它似乎不起作用:
模型 :
public class JSONContainer<T> extends Model {
private T myT;
private StatusMessage mySm;
public JSONContainer(T myT, StatusMessage mySm) {
this.myT = myT;
this.mySm = mySm;
}
}
然后 :
在 Controller 的功能中:
JSONContainer<User> myJ = new JSONContainer(logged,sm);
renderJSON(myJ);
其中logged 是一个用户,sm 是一个StatusMessage。我收到错误:
type: 'play.exceptions.JavaExecutionException'
如果我不使用泛型,它工作正常。任何想法?
控制台给出了这个输出,其中第 43 行是:
JSONContainer<User> myJ = new JSONContainer(logged,sm);
最佳答案
Hibernate 无法映射通用实体。
您应该对泛型类进行抽象并创建特定的实现(使用 User 和任何其他可能的 T 值)。这应该可以解决问题
关于java - 泛型和 JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8364658/