Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Intellij为什么要导入;“错误”;安全随机类(Java)?_Java_Secure Random - Fatal编程技术网

Intellij为什么要导入;“错误”;安全随机类(Java)?

Intellij为什么要导入;“错误”;安全随机类(Java)?,java,secure-random,Java,Secure Random,我正在写一个程序,需要一个安全的随机对象。创建后,Intellij自动导入了“sun.security.provider.SecureRandom”。 但是有了这个导入,我无法调用很多方法。例如,我无法使用“nextInt()”或“doubles()”以及许多其他方法 但是如果我手动导入“java.security.SecureRandom”,我就能够使用上述方法生成随机数 但是,“sun.security.provider.SecureRandom”导入确实提供了“engineGenerate

我正在写一个程序,需要一个安全的随机对象。创建后,Intellij自动导入了“sun.security.provider.SecureRandom”。 但是有了这个导入,我无法调用很多方法。例如,我无法使用“nextInt()”或“doubles()”以及许多其他方法

但是如果我手动导入“java.security.SecureRandom”,我就能够使用上述方法生成随机数

但是,“sun.security.provider.SecureRandom”导入确实提供了“engineGenerateSeed”之类的其他方法,我不能用“java.security.SecureRandom”调用这些方法


因此,我的实际问题是,为什么有两种不同的导入方式(我不能同时导入这两种方式)以及它们的用途是什么?

它们是不同的实现。他们只是碰巧被称为同一件事。为什么我的朋友Tom和你的兄弟Tom看起来不一样?“我不能同时导入这两个”对吧,因为在你的代码中,
SecureRandom
指的是哪一个?如果两个都需要(但不需要),则可以导入一个并引用另一个的完全限定名(例如,在类中,您将使用
SecureRandom
java.security.SecureRandom
),您可以在代码中同时使用这两个名称。您只需使用完全解析的类名引用每个类。您不能再在代码中使用短类名。你必须把它们拼出来。您应该避免使用以“sun”开头的软件包。它们被清楚地标记为随时可能被弃用和删除。