gpt4 book ai didi

构造函数的 Java 自定义可选值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:51 29 4
gpt4 key购买 nike

这段代码几乎就是我想要做的:

import java.util.Random;    

public class TestClass {
protected int testVarA;
protected int testVarB;

public TestClass() {
Random r = new Random();
this(r.nextInt(),r.nextInt());
}

public TestClass(int testVarA, int testVarB) {
this.testVarA = startTestVarA;
this.testVarB = startTestVarB;
}
}

但是,这不会编译,因为 this() 语句必须位于函数的开头。我可以做类似的事情

this((new Random()).getNextInt(),(new Random()).getNextInt())

但这感觉很不合适。这样做的正确方法是什么?

最佳答案

我会将您的 Random 对象创建为任何构造函数之外的 static final 变量,以便您可以在无参数构造函数的第一行中引用它。

private static final Random r = new Random();

public TestClass() {
this(r.nextInt(),r.nextInt());
}

这样,你只需要一个 Random 对象,它在构造函数的第一行之前被初始化。

关于构造函数的 Java 自定义可选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070537/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com