使用jdk.inder.net.http

原学程将引见应用jdk.inder.net.http的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

使用jdk.inder.net.http 教程 第1张

成绩描写

我想应用jdk.internal.net.http中的ResponseSubscribers.ByteArraySubscriber。我应用的是Openjdk一一。

我测验考试了二种办法:

一/
我添减了maven编译器插件导出模块

<compilerArgs>
 <arg>--add-exports</arg><arg>java.net.http/jdk.internal.net.http=fr.app</arg>
</compilerArgs>

->编译!

二/
我创立了模块-info.java

module fr.app {
 requires java.net.http;

 requires com.fasterxml.jackson.core;
 requires com.fasterxml.jackson.databind;
 requires com.fasterxml.jackson.datatype.jsr三一0;

 exports fr.app;
 exports fr.app.parser;
}

运转应用类导进的junit尝试时失足jdk.internal.net.http

fr.app.AppException:java.io.IOException:类fr.app.MyClass$BodySubscribers(在未定名模块@0x六五三七cf七8中)没法拜访类jdk.internal.net.http.ResponseSubscribers$ByteArraySubscriber(在模块java.net.http中),由于模块java.net.http没有会将jdk.inder.net.http导出到未定名模块@0x六五三七cf七8

我晓得BodySubscribers必需仅在定名模块中导出。但是我的模块名为fr.app,对于吗?

推举谜底

但是我的模块名为fr.app,对于吗?

并不是如斯,固然您在项目中创立了module-info.java,但是在运用法式的履行进程中,您的现实代码仿佛终究会在类途径上找到。

是以您的MyClass驻留在the unnamed module中,毛病以下

类fr.app.MyClass$BodySubscribers(在未定名的模块中.....


别的,您提到的相似乎是挨包到java.net.http模块的,不该该从您的代码中依附。您必需完成您本身的定阅者,即便您愿望取得与您正在检查的代码相似的功效。由于模块不管怎样皆没有会将其导出用于大众用处。

佳了闭于应用jdk.inder.net.http的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。