Java10 中的 HttpRequest.BodyProcessor 在哪里
Where is HttpRequest.BodyProcessor in Java10
我目前正在 HTTP/2 客户 Java9~10 至 this。
Java 9 确实有 HttpRequest.BodyProcessor
接口,而 Java 10 没有 HttpRequest.BodyProcessor
,但它确实有 HttpRequest.BodyPublisher
。两个界面都很相似。
为什么 Java 更改接口的名称? 我认为向后兼容性被忽略了。
HttpClient
has been a part of an incubator module 与 Java 9 和 10。所以人们看到的是更多的原型作品,虽然理想情况下不应有太大变化,但不能保证相同。
来自孵化器JEP#Incubator Modules:
An incubating feature is an API of non-trivial size that is under
development for eventual inclusion in the Java SE Platform, or the
JDK, but is not yet sufficiently proven.
如果你想使用标准模块你可以在Java11中使用它,它在命名为 java.net.http
。 [注意它被标记为自 Java 11 而不是 9 或 10]
如果您已经在 Java9/10. 中使用 可以帮助您迁移 Java 11 中 HttpClient
的使用
有点跑题:如果你能比较一下JDK中的源码,你会发现与之前的状态相比,BodyPublisher
中的方法有所更新,包括 Java 10 和 Java 11.
我目前正在 HTTP/2 客户 Java9~10 至 this。
Java 9 确实有 HttpRequest.BodyProcessor
接口,而 Java 10 没有 HttpRequest.BodyProcessor
,但它确实有 HttpRequest.BodyPublisher
。两个界面都很相似。
为什么 Java 更改接口的名称? 我认为向后兼容性被忽略了。
HttpClient
has been a part of an incubator module 与 Java 9 和 10。所以人们看到的是更多的原型作品,虽然理想情况下不应有太大变化,但不能保证相同。
来自孵化器JEP#Incubator Modules:
An incubating feature is an API of non-trivial size that is under development for eventual inclusion in the Java SE Platform, or the JDK, but is not yet sufficiently proven.
如果你想使用标准模块你可以在Java11中使用它,它在命名为 java.net.http
。 [注意它被标记为自 Java 11 而不是 9 或 10]
有点跑题:如果你能比较一下JDK中的源码,你会发现与之前的状态相比,HttpClient
的使用
BodyPublisher
中的方法有所更新,包括 Java 10 和 Java 11.