Java 随机类不适用于Android 4.1+;

Java 随机类不适用于Android 4.1+;,java,android,random,Java,Android,Random,这是我用来生成随机数字集的代码: ... public boolean placeTreasure() { randomGen = new Random(); int[] treasureLoc = {0, 0}; while (treasureLoc[0] < 2 || treasureLoc[1] < 2) { treasureLoc[0] = ran

这是我用来生成随机数字集的代码:

...
        public boolean placeTreasure()  {
            randomGen = new Random();
            int[] treasureLoc = {0, 0};

            while (treasureLoc[0] < 2 || treasureLoc[1] < 2)    {
                treasureLoc[0] = randomGen.nextInt(rows - 2);
                treasureLoc[1] = randomGen.nextInt(columns - 2);
                System.out.println("" + treasureLoc[0] + ", " + treasureLoc[1]);
            }
            maze[treasureLoc[0]][treasureLoc[1]] = '*';

            return true;
        }
...
。。。
公共宝藏(){
randomGen=新随机数();
int[]loc={0,0};
while(司库位置[0]<2 | |司库位置[1]<2){
treasureLoc[0]=randomGen.nextInt(第2行);
treasureLoc[1]=随机生成的nextInt(第2列);
System.out.println(“+treasureLoc[0]+”,“+treasureLoc[1]);
}
迷宫[treasureLoc[0]][treasureLoc[1]]='*';
返回true;
}
...
有趣的是,它在早期版本的Android上运行良好。据我所知,4.1以上的版本都不能正常运行。它不断地给我成对的
0,0
。这让我相信,要么4.1+不支持random类,要么我的实现中出现了一些奇怪的情况。不过,这种方法在早期版本上运行良好,所以我不确定发生了什么

如果有人对这种方法的替代实现有建议(我需要在
2
之间生成随机整数)

如果有人对这种方法的替代实现有建议(我需要在2和行或列之间生成随机整数)

是的,非常简单:

int randomRow = randomGen.nextInt(rows - 2) + 2;
int randomCol = randomGen.nextInt(columns - 2) + 2;
如果有人对这种方法的替代实现有建议(我需要在2和行或列之间生成随机整数)

是的,非常简单:

int randomRow = randomGen.nextInt(rows - 2) + 2;
int randomCol = randomGen.nextInt(columns - 2) + 2;

调用此代码时,行和列的值是多少?你要打印出来确认吗?为什么要在方法内部重新创建一个随机对象,而不是简单地创建一次?为什么有while循环?为什么不简单地获取
randomGen.nextInt(rows-2)+2
以及其他数字的类似值呢?您不想将
2
添加到每个数字中,而不是进入一个循环,在
0
rows-2
之间重试,直到找到随机数为止?@HovercraftFullOfEels行和列可以是任何数字。是的,我正在打印出来。我不是在重建一个随机对象,我只是做了一次。好主意。但这仍然不能解决Random类不工作的问题。调用此代码时,行和列的值是多少?你要打印出来确认吗?为什么要在方法内部重新创建一个随机对象,而不是简单地创建一次?为什么有while循环?为什么不简单地获取
randomGen.nextInt(rows-2)+2
以及其他数字的类似值呢?您不想将
2
添加到每个数字中,而不是进入一个循环,在
0
rows-2
之间重试,直到找到随机数为止?@HovercraftFullOfEels行和列可以是任何数字。是的,我正在打印出来。我不是在重建一个随机对象,我只是做了一次。好主意。但是这仍然不能解决随机类不工作的问题。谢谢,但是随机类不工作的问题仍然存在。它连续返回0。但是关于摆脱循环的好建议,愚蠢的我。如果你能解决我真正的问题,那将非常有帮助。谢谢。@capcom:我99.9999%确信这个bug存在于你的代码中,而不是安卓的Random实现中。你没有向我们展示足够的信息让我们能够解决它,但是如果你做一些更努力的调试,我打赌你会找到它。我认为你是对的!我想我给了随机发生器一个参数1。我真傻。非常感谢你@卡普康:不客气,很高兴你找到了窃听器!请注意,我在上面的评论并不是在侮辱你。我发现,每当我认为错误是由Java引起的时候,99.9999%的时间我都是错的,错误是在我对Java的理解上。我想你的几率也差不多。我永远不会感觉到有人的帮助以任何方式侮辱我。我是一个业余程序员,当我遇到像这样的场景时,我只会变得更好。很高兴知道像你这样的人愿意花时间帮助别人。再次感谢。我在代码中修复了这个问题,一切正常。谢谢,但是随机类不工作的问题仍然存在。它连续返回0。但是关于摆脱循环的好建议,愚蠢的我。如果你能解决我真正的问题,那将非常有帮助。谢谢。@capcom:我99.9999%确信这个bug存在于你的代码中,而不是安卓的Random实现中。你没有向我们展示足够的信息让我们能够解决它,但是如果你做一些更努力的调试,我打赌你会找到它。我认为你是对的!我想我给了随机发生器一个参数1。我真傻。非常感谢你@卡普康:不客气,很高兴你找到了窃听器!请注意,我在上面的评论并不是在侮辱你。我发现,每当我认为错误是由Java引起的时候,99.9999%的时间我都是错的,错误是在我对Java的理解上。我想你的几率也差不多。我永远不会感觉到有人的帮助以任何方式侮辱我。我是一个业余程序员,当我遇到像这样的场景时,我只会变得更好。很高兴知道像你这样的人愿意花时间帮助别人。再次感谢。我修复了代码中的问题,一切正常。