我有一个扩展 BaseA 并实现 InterfaceA 的具体类 A。我想使用基类或接口作为循环变量来循环 A 列表。尝试这样的事情:
<t:loop source="listOfA" value="propertyOfTypeBaseA">
${propertyOfTypeBaseA.someField}
</t:loop>
给我一个错误“找不到从类型 A 到 BaseA 的强制”。当我将值设置为 InterfaceA 类型的属性时,也会发生同样的事情。如果我使用 Object 作为循环变量类型,我可以让循环工作,但是我无法访问具体类或接口上的任何字段。
似乎 Tapestry 应该知道如何从一个对象强制转换为它实现的接口,但我也尝试将强制从 A 贡献到 BaseA/InterfaceA 并且它仍然给了我这个错误,即使它实际上在列表中显示了强制。
有任何想法吗?