簡體   English   中英

Java:從jdk導入是否安全。*?

[英]Java: Is it safe to import from jdk.*?

用這樣的導入編寫Java程序對我來說是否安全:

import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
import jdk.nashorn.api.scripting.ClassFilter; 

注意: 在我的示例中,我導入Nashorn,但它可以是任何其他jdk包。

注意:我知道從java。*,javax。*和不安全/不支持從sun導入是安全/正確的。*

我在這里看到一篇好文章: http//www.oracle.com/technetwork/java/faq-sun-packages-142232.html

我在Java官方文檔中找不到任何方式告訴我這種或那種方式

謝謝

您應該通過javax.script使用它們,如https://docs.oracle.com/javase/8/docs/jdk/api/nashorn/jdk/nashorn/api/scripting/package-summary.html中所述。

包jdk.nashorn.api.scripting描述

這個包提供了javax.script集成,這是使用Nashorn的首選方法。 您通常會這樣做以獲取Nashorn腳本引擎的實例:

import javax.script.*;
...
ScriptEngine nashornEngine = new ScriptEngineManager().getEngineByName("Nashorn");

但要回答你的問題,我會說“可能不是”。 唯一官方保證支持的包是java.*javax.*org.*

由於這些是唯一受支持的軟件包,因此不支持所有其他軟件包。

任何新的不支持的軟件包都不會命名為sun.*因為Oracle現在擁有Java。

有人可能會選擇jdk.*作為新的不支持的包前綴,因為sun.*不再可用。

也就是說,他們不太可能很快將其刪除,除非他們決定將其替換為另一個Javascript引擎,就像他們之前已經做過的那樣。

另一個潛在的問題是您的程序不會在另一個不包含Nashorn的JDK上運行。

jdk.nashorn.api。*包是nashorn腳本引擎特定的API(而javax.script是腳本語言獨立的API)。 如果您在代碼中使用nashorn並且您希望使用nashorn特定訪問(例如,使用jdk.nashorn.api.scripting.ScriptObjectMirror反射性地從Java代碼訪問腳本對象),則可以使用這些API。 如果你想讓你的java代碼獨立於特定的腳本語言實現,那么你可能想要堅持使用javax.script。

nashorn API的javadoc在這里: https ://docs.oracle.com/javase/8/docs/jdk/api/nashorn/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM