我有以下课程:
Streamable
接口DiaryEntry
实现Streamable
StatusEntry
实现Streamable
还有一个stream
字段,它是一个LinkedList<Ref<? extends Streamable>>
,在我看来,这个字段应该同时包含Ref<DiaryEntry>
和Ref<StatusEntry>
。
不幸的是,似乎我错了,因为我在这一行中得到了一个编译错误:
ofy().load().refs(stream).values();
错误是:
The method refs(Iterable<Ref<E>>) in the type Loader is not applicable for the arguments (LinkedList<Ref<? extends Streamable>>)
我是否有可能以某种糟糕的方式对我的实体或领域建模?refs
方法是否应该有这个签名的refs(Iterable<Ref<? extends E>>)
而不是当前的?
谢谢
发布于 2013-01-19 18:34:34
您没有在问题中提供足够的信息来了解整个情况,例如,哪个类声明了E
以及该类型参数的界限是什么。
但要猜测一下,请尝试重新声明refs
以获取Iterable<? extends Ref<? extends E>>
。
发布于 2013-04-26 10:22:57
我认为Objectify不适用于界面成员的列表。我相信您会看到一个异常,表示Streamable
缺少构造函数。在我看来,最好的方法是有具体的课程。在这种情况下,List<Ref<Streamable_Concrete_Class>>
可以处理扩展Streamable_Concrete_Class
的其他类。在列表被持久化之后,列表的@Load注释应该可以按预期工作
https://stackoverflow.com/questions/14414828
复制相似问题