我最近从Java 8迁移到Java 11. for jax.ws
我不得不在我的pom.xml
中添加以下外部依赖,因为它在Java 11中不再可用。但是,我遇到了一些争论,即不应该使用com.sun.*
包类,如果可能应该避免使用。那么它是sun.*
还是com.sun.*
?如果后者也是如此,那么最好的替代品是什么呢?
还有一件事,我的代码没有直接使用这种依赖,但是我的其他依赖项之一引用了它。
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.10</version>
</dependency>
一些com.sun.*
类是实际的外部API,可以使用。关键是检查官方Javadoc以查看您要使用的类是否列为API,而不是标记为@Deprecated
或任何类似的类。
以下是要查看的官方javadoc页面:https://docs.oracle.com/en/java/javase/11/docs/api/index.html
通常,sun.*
API指的是一些最早的Java API(例如sun.misc.Unsafe
),这些API早于反向DNS包命名约定。大多数原始sun.*
API已被删除,升级为官方javax.*
API,或重命名为更合适的com.sun.*
域。
使用com.sun.*
API没有任何内在错误,只要API不是JDK内部或标记为弃用/删除。