使用 Java 8 的 stream() 在 Play Framework 2.3 中给出子类化错误
Using Java 8's stream() gives subclassing error in Play Framework 2.3
在我的 Play Framework 2.3.7 Java 应用程序中,我编写了一个包含以下表达式的方法:
myList.stream().map(x -> x.myMethod()).collect(Collectors.toList());
这会产生以下错误:
Entity type class models.MyClass is not an enhanced entity bean.
Subclassing is not longer supported in Ebean
如果我用 Java 8 之前的版本替换表达式,它会完美运行:
List<SomeClass> myNewList = new ArrayList<SomeClass>();
for(AnotherClass x : myList)
myNewList.add(x.myMethod());
这是怎么回事?
如果您在 models/persistence 中使用 EBean,我相信目前您无法在模型中使用任何 Java8 个功能(使用 Play 框架):
https://github.com/playframework/playframework/issues/1220
这样做最初可能是一种反模式,但您可以从模型中提取 Java 8 个特征并将它们放入某个实用程序 class 等中,然后您的代码应该可以正常工作。
在我的 Play Framework 2.3.7 Java 应用程序中,我编写了一个包含以下表达式的方法:
myList.stream().map(x -> x.myMethod()).collect(Collectors.toList());
这会产生以下错误:
Entity type class models.MyClass is not an enhanced entity bean.
Subclassing is not longer supported in Ebean
如果我用 Java 8 之前的版本替换表达式,它会完美运行:
List<SomeClass> myNewList = new ArrayList<SomeClass>();
for(AnotherClass x : myList)
myNewList.add(x.myMethod());
这是怎么回事?
如果您在 models/persistence 中使用 EBean,我相信目前您无法在模型中使用任何 Java8 个功能(使用 Play 框架):
https://github.com/playframework/playframework/issues/1220
这样做最初可能是一种反模式,但您可以从模型中提取 Java 8 个特征并将它们放入某个实用程序 class 等中,然后您的代码应该可以正常工作。