Java 20 中已弃用所有 URL 构造函数。我替换new URL(protocol, host, file)为,new URI(protocol, host, file, null).toURL()因为我没有查询,也没有片段,但我不知道如何处理其他内容:
/home/gouessej/Documents/programmation/java/workspace/Ardor3D/ardor3d-core/src/main/java/com/ardor3d/util/UrlUtils.java:40: warning: [deprecation] URL(String) in URL has been deprecated
return new URL(new URL(url), relativeLoc);
^
/home/gouessej/Documents/programmation/java/workspace/Ardor3D/ardor3d-core/src/main/java/com/ardor3d/util/UrlUtils.java:40: warning: [deprecation] URL(URL,String) in URL has been deprecated
return new URL(new URL(url), relativeLoc);
^
/home/gouessej/Documents/programmation/java/workspace/Ardor3D/ardor3d-core/src/main/java/com/ardor3d/util/resource/SimpleResourceLocator.java:94: warning: [deprecation] URL(URL,String) in URL has been deprecated
final URL rVal = new URL(_baseDir.toURL(), spec);
^
/home/gouessej/Documents/programmation/java/workspace/Ardor3D/ardor3d-audio/src/main/java/com/ardor3d/audio/FilenameURL.java:125: warning: [deprecation] URL(String) in URL has been deprecated
url = new URL( filename );
Run Code Online (Sandbox Code Playgroud)
会简单地new URI(filename).toURL()完成最后一种情况的工作吗?
当我比较 Java 文档中的措辞时,我了解到 URI 方案或多或少意味着 URL 协议,URI 主机是 URL 主机,URL 文件与 URI 路径和可选的 URI 查询相匹配。new URL(spec)和的精确等价物是什么new URL(context, spec)?
我准备了一些建议的更改,但它不起作用,抛出了 IllegalArgumentException。
Bas*_*que 18
URI::toURL.URI使用上下文 URI 创建,然后URI::resolve使用您希望设为相对的 URI 进行调用。file:基于 URL,(1) 调用Path::toURI,(2) 然后URI::toURL。前任:URI uri = Paths.get( "/Users/your_user_name/example.txt" ).toUri() ;
明白:
\njava.net.URL是一个古老的类,可追溯到 Java 1。该类不根据RFC 2396转义机制对任何 URL 组件进行编码或解码。java.net.URI类后来出现在 Java 4 中。阅读 Java 团队Oracle 的这篇说明:质量推广注意事项 - JDK 20:弃用 URL 公共构造函数。去引用:
\n\n\nJDK 20 将弃用 java.net.URL 的所有公共构造函数。\xe2\x80\xa6 要构造 URL,
\nURI::toURL应首选替代方案。要构建file:基于 URL,Path::toURI应先于URI::toURL.
请参阅类的 Javadoc 中关于构造函数弃用的注释URL。
另请参阅问题跟踪器页面JDK-8294241 弃用 URL 公共构造函数。
\n要在现代 Java 中处理文件,请使用NIO.2功能。
\n类Paths可以产生一个Path对象。从那里,要求Path生成一个URI.
Path path = Paths.get( "/Users/your_user_name/example.txt" ) ;\nURI uri = path.toUri () ;\nSystem.out.println ( "uri = " + uri );\nRun Code Online (Sandbox Code Playgroud)\n\n\nuri = 文件:///Users/your_user_name/example.txt
\n
走向另一个方向:
\nPath path = Paths.get( uri ) ;\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
12978 次 |
| 最近记录: |