You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus 3.16升级3.17后HalLink构造器参数变更适配问题

Quarkus 3.16升级3.17后HalLink构造器兼容方案

要保持原有功能,直接给新增的title和type参数传入null即可。原1参数构造器仅初始化href字段,title和type原本就无默认值,显式传null完全匹配旧版行为。

修改后的代码如下:

public static Map<String, HalLink> paginationHalLinks(int current, int size, long count, UriInfo uriInfo, Map<String, Object> queryParams) {
    int firstPage = 0;
    int lastPage = (int) ((count + size - 1) / size) - 1;
    int currentPage = Math.min(current, lastPage);
    int next = (currentPage == lastPage) ? lastPage : (current + 1);
    int previous = (current == firstPage) ? firstPage : (current >= lastPage) ? ((lastPage == firstPage) ? firstPage : lastPage - 1) : (current - 1);
    int[] navigationPages = {firstPage, lastPage, next, previous, currentPage};
    String[] navigationRel = {"first", "last", "next", "prev", "self"};
    Map<String, HalLink> links = new HashMap<>();
    for (int i = 0; i < 5; i++) {
        final int navigationPage = navigationPages[i];
        UriBuilder firstLinkBuilder = uriInfo.getAbsolutePathBuilder();
        firstLinkBuilder.queryParam("page", navigationPage);
        firstLinkBuilder.queryParam("size", size);
        queryParams.forEach(firstLinkBuilder::queryParam);
        // 传入null作为新增的title和type参数
        links.put(navigationRel[i], new HalLink(firstLinkBuilder.build().toString(), null, null));
    }
    return links;
}

如果后续需要给特定链接添加title或type属性,再针对对应位置传入具体字符串即可,目前传null完全兼容旧版的分页链接生成逻辑。

内容的提问来源于stack exchange,提问作者Nik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:40:05