对于类型安全随机,未定义方法nextInt

时间:2014-12-07 10:50:41

标签: java

我试图使用此代码生成随机数,但不断收到此错误

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method nextInt(int) is undefined for the type SecureRandom

    at SecureRandom.main(SecureRandom.java:18)

这是我尝试过的事情

public class SecureRandom {

    public static void main(String[] args) {
    SecureRandom randomNumbers = new SecureRandom();
    for (int count = 1; count <=20; count++) {

        int face = 1+randomNumbers.nextInt(6);
        System.out.printf( " %d" , face);

        if (count %5 ==0) {
        System.out.println();
        }

    }

    }

}

2 个答案:

答案 0 :(得分:8)

编译器正在针对您定义的类解析SecureRandom。您应该更改类名以避免与java.security.SecureRandom冲突。

答案 1 :(得分:1)

由于您已调用自己的类SecureRandom,因此编译器在您想要使用java.security.SecureRandom时在main方法中使用该类。 您可以通过在代码中使用类的规范名称来强制编译器使用后者:

public class SecureRandom {

   public static void main(String[] args) {
      java.security.SecureRandom randomNumbers = new java.security.SecureRandom();
      for (int count = 1; count <=20; count++) {
         int face = 1+randomNumbers.nextInt(6);
         System.out.printf( " %d" , face);
         if (count %5 ==0) {
            System.out.println();
         }
      }
   }

}