大陆是一个复合物体。结构为:
Continent
--Country
----State
------Town
所以在这个符号中:
town= Optional.of(continent)
.map(Continent::getCountry)
.map(Country::getState)
.map(State::getTown)
.orElse(null);
这很好,但当我尝试编写通用映射器时,
public static <T, R> T getFromMapping(R source,
T defaultValue,
Function<?,?>... functions) {
Optional sourceWrapper = Optional.ofNullable(source);
for (Function function : functions) {
sourceWrapper.map(function);
}
return (T) sourceWrapper.orElse(defaultValue);
}
并通过以下方式调用它
portfolio = getFromMapping(continent, null,
((Function<Continent, Country>) Continent::getCountry)
((Function<Country, State>) Country::getState),
((Function<State, Town>) State::getTown));
它编译得很好,但不起作用。地图绘制者跳到第二步,说大陆不能投射到这个国家,为什么?在进行映射时应该没有强制转换,如何修复它?
可选#map
不会修改自己,而是返回一个新的可选
,因此source ceWrapper
仍然包含您的大陆。您应该在for循环中重新分配变量:
sourceWrapper = sourceWrapper.map(function);
如何过滤
问题内容: 如何在hibernate的hbm文件中创建可选的一对一映射?例如,假设我有一个User和一个last_visited_page表。用户可能有也可能没有last_visited页面。这是我当前在hbm文件中的一对一映射: 用户类别: LastVisitedPage类: 上面的示例不允许创建没有最后访问页面的用户。新创建的用户尚未访问任何页面。如何更改hbm映射以使userPrefs映
我想使用另一个映射器中的一个映射器,并且这两个映射器都使用相同的签名实现相同的方法,因此我得到了“mapping Property的mapping methods found for mapping property” 我已经尝试在接口上实现共享方法,然后在两个映射器上扩展接口,但问题仍然存在 我想我需要使用某种限定词。我在谷歌和官方文档中搜索,但我不知道如何应用这项技术
我需要将带有多个可选参数的路径映射到我的endpoint
我需要解析一个XML文件,然后将其映射到一个Java对象。到目前为止,我使用带注释的POJO来执行此操作: 然后用JAXB解组它: 问题:有时,我的客户发送的文件具有稍微不同的标记名(例如,< code>Eventlist而不是< code>EventList) 是否有允许标记同时使用两个名称的选项?到目前为止,我通过在POJO中给出2个属性来解决这个问题: 这个很难维护,禁止我使用‘必填’属性,
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 在Java中将值(“ o”)保留在像这样的树结构中的最佳方法是什么: 它看起来像一棵树,但是我不需要任意深度。我宁愿需要强大的数据类型和预定义的美观方法来处理最终结构。 我需要能够通过键获取某种值列表-就像在我的图片上一样。换句话说,结构应 不 以任何方式变得平坦。 我需要回来。 现在,我使用Map来实现此功能,但是由于需要检查结构的每个级