首页 > 解决方案 > Java10中的HttpRequest.BodyProcessor在哪里

问题描述

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

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

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

标签: javajava-9http2java-10

解决方案


HttpClient是 Java 9 和 10 的孵化器模块的一部分。因此,人们看到的更多的是原型作品,虽然理想情况下不应该有太大变化,但不能保证不变。

从孵化器JEP#Incubator Modules

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


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

HttpClient如果您已经在 J​​ava9/10 中使用Java11 中未找到的 jdk.incubator.httpclient 模块,则可以帮助您迁移 Java 11 中的用法。

稍微偏离主题BodyPublisher:如果您可以比较两个 JDK 中的源代码,您会发现与之前的状态相比,Java 10 和 Java 11 中的方法都有更新


推荐阅读