您好我是Java的新手,我只是想知道为什么我的程序没有编译。每当我编译程序时,我都会收到以下错误消息:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method nextInt(int) is undefined for the type Random
at Random.main(Random.java:11)
对我的问题的任何意见都将不胜感激。
import java.util.Random;
class Random {
public static void main(String[] args)
{
Random dice = new Random();
int number=0;
for(int counter=1; counter<=10; counter++)
{
number = dice.nextInt(6);
System.out.println(number);
}
}
}
答案 0 :(得分:17)
您正在通过命名班级Random
隐藏您要从java.util.Random
导入的Random
班级。称之为别的。
class RandomTest {
...
}
注意:不要忘记使用相应的名称(上例中的RandomTest.java
)重命名文件名。
答案 1 :(得分:7)
您有一个名为Random
的课程,但您也尝试使用名为Random
的API课程。当您调用dice.nextInt(6)
时,Java正在调用类上的nextInt
函数,而不是API方法。要修复,请更改代码:
import java.util.Random;
class AnythingButRandom {
public static void main(String[] args)
{
Random dice = new Random();
int number=0;
for(int counter=1; counter<=10; counter++)
{
number = dice.nextInt(6);
System.out.println(number);
}
}
}
(然后将Random.java
重命名为AnythingButRandom.java
)
答案 2 :(得分:7)
您正在隐藏导入,您可以重命名您的课程;或者您可以使用完整的包名称
java.util.Random dice = new java.util.Random(); // <-- like so
答案 3 :(得分:2)
当你创建一个随机骰子对象时,它不会创建一个java.util.Random
对象,而是创建一个你自己的类的对象,Random。正在对您的类的对象调用nextInt
方法,并且由于它不存在,您将收到错误。将您的类命名为ANYTHING但随机,或任何其他导入的内容。不要忘记将文件重命名为相同的新名称。
答案 4 :(得分:0)
使用
初始化随机对象时Random dice = new Random();
它实际上不是从java.util.Random创建随机类的对象。
如果您真的希望将您的班级称为“随机”,请使用
java.util.Random dice = new java.util.Random();
但这简直太丑了。我建议你为班级找一个不同的名字。