我正在使用 Play 框架。 我想使用带有 2 个对象的函数 renderJSON 作为参数。这似乎是不可能的,所以我试图创建一个包含这两个对象的类。为了不必每次都创建一个新类,我想使用泛型,但它似乎不起作用:
型号:
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 是一个 User,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/