为啥它说 next(int) 在 java.util.Random 中有受保护的访问?

Posted

技术标签:

【中文标题】为啥它说 next(int) 在 java.util.Random 中有受保护的访问?【英文标题】:Why does it say next(int) has protected access in java.util.Random?为什么它说 next(int) 在 java.util.Random 中有受保护的访问? 【发布时间】:2015-06-11 12:06:07 【问题描述】:

我对编程还是很陌生,我终其一生都无法弄清楚为什么我会收到错误消息:“next(int) has protected access in java.util.Random”

这是发生错误的代码...

      /**
 * Generates Random Width Multiplier 
 */
public static double randomRMultiplier()  
   Random randM = new Random();
   double randomMultiplier;

   //Calculates a random value between 12 and 20   
   //(Divided by 10 to make a multiplier)
   do 
      switch(difficultyMark) 
         case 1: 
           randomMultiplier = (randM.next((21-11) + 1) + 11); //Randoms between 11 and 21
           break;

         case 2:
           randomMultiplier = (randM.nextInt((20-12) + 1) + 12); //Randoms between 12 and 20
           break;

         case 3:
           randomMultiplier = (randM.nextInt((19-13) + 1) + 13); //Randoms between 12 and 20
           break;
        
    while ( randomMultiplier > 14 & randomMultiplier < 18); //Excludes 15,16,17 as they are too similar to golden values(16-->1.6)

   randomMultiplier = randomMultiplier / 10; //Divide by ten to make decimal multiplies

   return randomMultiplier;

【问题讨论】:

【参考方案1】:

我不认为你打算直接使用它。

它实际上是所有 other next* 调用使用的“实用程序”函数,如果您将 Random 子类化为更合适的类,则可以覆盖该函数,例如这不是线性同余的。

根据您的代码,我建议您在打算使用 nextInt 的地方不小心使用了 next

【讨论】:

以上是关于为啥它说 next(int) 在 java.util.Random 中有受保护的访问?的主要内容,如果未能解决你的问题,请参考以下文章

c#中泛型类构造函数重载赋值时为啥不接受null?对其赋空值应给怎么做?

为啥它说我使用 RapidAPI 的 API 密钥无效?

在 switch case 语句中,它说“重复的 case 值”作为错误出现。为啥?

为啥它说错误的消息?

为啥它说在 sql 查询中选择的列数错误?

为啥当我执行 git subtree push 时它说我拥有的文件不存在?