Java10中的HttpRequest.BodyProcessor在哪里

时间:2018-10-26 01:27:42

标签: java java-9 http2 java-10

我目前正在通过this使用Java9〜10中的HTTP / 2客户端。

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

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

1 个答案:

答案 0 :(得分:4)

带有Java 9和10的HttpClient has been a part of an incubator module。因此,人们看到的是更多的原型工作,尽管理想情况下应该不会有太大变化,但不能保证相同。

从孵化器JEP#Incubator Modules

  

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


如果您希望使用 标准模块 ,则可以在Java 11中使用它,其名称为java.net.http。 [注意,它标记为Java 11以后的版本,而不是9或10 ]

The jdk.incubator.httpclient module not found in Java11可以帮助您迁移Java 11中HttpClient的用法,如果您已经在Java9 / 10中使用它的话。

有点题外话 :如果您可以比较两个JDK中的源代码,则会发现{{1 }}与以前的状态(在Java 10和Java 11中)相比。