![](/img/trans.png)
[英]SonarQube rule Classes from “com.sun.*” and “sun.*” packages should not be used
[英]Difference between sun.* vs com.sun.*
我最近從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內部或標記為棄用/刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.