【问题标题】:Where is HttpRequest.BodyProcessor in Java10Java 10 中的 Http Request.Body 处理器在哪里
【发布时间】:2019-03-30 17:03:43
【问题描述】:

我目前正在通过this 学习 Java9~10 中的 HTTP/2 客户端。

Java 9 确实有HttpRequest.BodyProcessor 接口,而Java 10 没有HttpRequest.BodyProcessor,但它确实有HttpRequest.BodyPublisher。两个接口是相似的。

为什么 Java 更改接口的名称?我认为向后兼容性被忽略了。

【问题讨论】:

    标签: java java-9 http2 java-10


    【解决方案1】:

    HttpClient has been a part of an incubator module 带有 Java 9 和 10。所以人们看到的更多的是原型作品,虽然理想情况下不应该有太大变化,但不能保证不变。

    来自孵化器JEP#Incubator Modules

    孵化功能是一个非平凡大小的 API,它在 开发以最终包含在 Java SE 平台中,或 JDK,但尚未得到充分证明。


    如果你想使用标准模块,你可以在 Java 11 中使用它,它被命名为java.net.http。 [请注意,它标记为自 Java 11 而不是 9 或 10]

    如果您已经在 J​​ava9/10 中使用HttpClient,那么The jdk.incubator.httpclient module not found in Java11 可以帮助您迁移 Java 11 中的使用。

    有点跑题:如果你对比一下两个JDK中的源码,你会发现BodyPublisher中的方法都有更新与其之前的状态相比,在 Java 10 和 Java 11 中都是如此。

    【讨论】:

    • 顺便说一句,我很确定Java版本9到10的孵化器模块对应的更改也发布在一些邮件列表或文档中,只是目前无法找到。跨度>
    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2012-05-27
    • 2023-03-11
    相关资源
    最近更新 更多