Java中的Math.random()

Java中的Math.random(),java,math,random,Java,Math,Random,我在同一个项目中有两个类,我在这两个类中都使用了Math.random()。 在第一种情况下,all可以正常工作,但在第二种情况下,它表示random()未定义。 “数学类型的方法random()未定义” 有什么解决办法吗?你必须打电话 java.lang.Math.random()因为您的类名也是Math,所以必须指定包 例如: public class Math { public static void main(String args []){ System.ou

我在同一个项目中有两个类,我在这两个类中都使用了
Math.random()
。 在第一种情况下,all可以正常工作,但在第二种情况下,它表示
random()
未定义。 “数学类型的方法
random()
未定义”

有什么解决办法吗?

你必须打电话

java.lang.Math.random()
因为您的类名也是Math,所以必须指定包

例如:

public class Math {

    public static void main(String args []){
        System.out.println("JDK MATH RANDOM " +java.lang.Math.random()); // refers to java.lang
        System.out.println("My Math random implementation "+Math.random()); // refers to this class method, actually Math is redundant in this scope
    }

   public static double random(){
     //some implementation
   }

}

如果您自己有一个名为Math的类,那么您必须在使用时消除对所谈论的类的歧义,例如Java.lang.Math.random()。更简单的选择是更改类的名称。重用来自JDK的名称,特别是来自java.lang包的名称是一种不好的做法。

显示一些代码?你导入了数学吗?你有自己的一个叫做数学的类吗?我认为代码现在不相关。但一开始我没有导入数学。我可以导入,但我想了解在没有导入的情况下它是如何工作的……Math是java.lang的一部分,它是一个基本包。它不需要导入语句。哪个类导入了
Math
类,哪个类给出了错误?正如@MaxAlexander所说,默认情况下,它包括在内,您不需要导入它。我假设您已经在给出错误的类中导入了
Math
类的实现。奇怪的示例。如果不保存结果,调用该方法没有多大意义。我只是注意到,在同一项目中创建另一个类后,Math.random()立即停止工作。谢谢@EJP它只是一个关于OP的例子,是一个包问题,我展示了我认为的两个备选方案,这是一个了解问题所在的好例子,对于上面的评论,我认为它是有效的:)它没有任何作用。在结果变量中编辑有多难?@EJP我编辑过,但我不同意,我认为上一个示例更好,因为它更清晰,现在有一些代码与理解包问题无关。。