当前位置: 首页 > 知识库问答 >
问题:

如何在多个类中共享一个随机值?

饶骁
2023-03-14

我想创建一个随机的int值,在多个类中使用。每次创建这些类的一组新实例时,我都希望对所有这些类使用一个新的随机int值。不过,随机值应该是相同的。

简而言之,我希望创建一个随机索引,并在多个共同生成数据的类中使用。

这个随机值是否应该在堆栈的顶部生成,并在一起工作的每个类中静态调用?

共有3个答案

苏涛
2023-03-14

只需将其传递到其构造函数中的相关对象:

class Main {
    public static void main() {
        Random rnd = new Random();
        for (...) {
            int index = rnd.nextInt();
            // one set of related instances
            Foo f = new Foo(index);
            Bar b = new Bar(index);
        }
    }
}

class Foo {
    int randomIndex;
    public Foo(int randomIndex) {
        this.randomIndex = randomIndex;
        // etc.
    }
}

class Bar { ... }

如果希望类实例之间的值不同(无论它们是否同时存在),请不要将其设置为静态。

左丘成业
2023-03-14

像这样的怎么样

static class Utility {
    private static final int variable = (int)Math.round(1000*Math.random());

        public static int getVariable() {
            return variable;
        }
}

它像数学一样工作。PI等。例如。

System.out.println(Utility.getVariable());
颜文昌
2023-03-14

只需创建一个包含随机值字段的类。提供一个getter方法来访问此文件。然后,将该类的一个新实例与每个新批的类共享。

例如。

private static final Random random = new Random();
private final int randomValue = random.nextInt();

...

public int getRandomValue() {
  return randomValue;
}

这样,每组类的随机数相同,但每组的随机数不同。

 类似资料:
  • 问题内容: 我有一个MySQL数据库表,用于存储照片的URL。我需要从特定类型的数据库中提取5条随机记录。我可以这样拉出5条记录: 现在,我需要帮助尝试弄清楚如何每次提取不同的记录。如何从该结果集中检索随机行? 问题答案: 您可以用来获取查询中的随机行。

  • 问题内容: 我有多个具有相似构建步骤的项目,并且我正在研究在这些项目中重用Jenkinsfile管道。我很难找到有关如何实现这样的标准(我认为)设置的文档。 这是我的要求: 1)Jenkinsfile存储在回购中,在多个项目之间共享 2)每个项目都有其自己的参数:项目在仓库中的位置。 3)至少从用户角度来看,每个项目在Jenkins中都应独立,这意味着,例如,执行和日志可在Jenkins中的每个项

  • 问题内容: 我们遇到了适用于多线程的方案。 在主线程中,执行一些逻辑操作并更新数据库,在某种程度上,它将调用另一个服务来更新数据库,该服务在另一个线程中运行。 我们希望两个线程共享同一个事务,这意味着任何一个线程中的任何一个操作都将失败,那么另一个线程中的该操作也将被回滚。 但是工作了几天,我发现一些帖子说JTA不支持多线程。当前我们使用Bitronix作为JTA提供者,有没有人知道Bitroni

  • 我们有两个网站有多种产品。我们决定在这些网站之间只共享一个目录,其中包含所有产品,没有任何重复。 到目前为止,我可以在两个网站上看到所有的产品,但是我们有一些产品应该只在一个网站上显示。 有什么解决办法吗?我们使用的是Hybris 5.2 到目前为止,我们的想法是: 使用类别组织(站点A的类别,站点B的类别,共享产品的类别 在我们的情况下,哪种解决方案是最好的,还有其他解决方案吗?

  • 问题内容: 我对Swift和编程逻辑很陌生,所以请耐心等待 如何在Swift中生成0到9之间的随机数而不重复最后生成的数字?因为相同的数字不会连续出现两次。 问题答案: 将先前生成的数字存储在变量中,然后将生成的数字与先前的数字进行比较。如果它们匹配,则生成一个新的随机数。重复生成新数字,直到它们不匹配为止。