我正在使用 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/

10-09 03:36