gpt4 book ai didi

java - 如何将数组从一个类转移到另一个类?

转载 作者:行者123 更新时间:2023-12-04 09:29:58 26 4
gpt4 key购买 nike

我正在尝试将数据从一个类中的一个数组获取到另一个类(以便我可以复制结果)。我知道通常您会使用 get-set 方法来实现这一点,但是,我不确定如何使用我拥有的类来实现这一点。
这个方法(在我的后端类中)随机化了一个标签数组,我希望结果在 2 个不同的类中。一个类我可以得到结果,因为我有一个标签数组,另一个类也是如此(但我想要第一个类的相同结果,而不是另一个不同的随机数组)

public Label[] randomise(Label[] lbl){
Random randomiseArr = new Random();
for (int i = 0; i < lbl.length; i++) {
int randomIndexToSwap = randomiseArr.nextInt(lbl.length);
Label temp = lbl[randomIndexToSwap];
lbl[randomIndexToSwap] = lbl[i];
lbl[i] = temp;
}
return lbl;
}
这是我的第一个类(我得到结果的那堂课,标签已经在上面创建了——我只是没有包括那些):
public void initialize(URL url, ResourceBundle rb) {

backend back = new backend();

Label[] lbl = {t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14,
t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25};

int ranClr = (int) (Math.random() * (10 - 1)) + 1;

if (ranClr <= 5) {
back.redTeam(back.randomise(lbl), clr1, clr2, clr3, clr4);
} else {
back.blueTeam(back.randomise(lbl), clr1, clr2, clr3, clr4);

}


}
这是我希望随机化方法得到完全相同结果的类:
    public void initialize(URL url, ResourceBundle rb) {

backend back = new backend();

Button[] btn = {btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9,
btn10, btn11, btn12, btn13, btn14, btn15, btn16, btn17, btn18, btn19,
btn20, btn21, btn22, btn23, btn24, btn25};

Label[] lbl = {lbl1, lbl2, lbl3, lbl4, lbl5, lbl6, lbl7, lbl8, lbl9,
lbl10, lbl11, lbl12, lbl13, lbl14, lbl15, lbl16, lbl17, lbl18, lbl19,
lbl20, lbl21, lbl22, lbl23, lbl24, lbl25};
}

最佳答案

在您的 backend类,我建议你有一个可以保存随机数组的字段。这样,您可以通过 getter 访问多个类之间的数组。
例如,您可以在 backend 的顶部有这样一个字段。类(class):private Label[] randomisedLabels;然后,您可以为该字段设置一个 setter/getter :

public Label[] getRandomisedLabels() {
return randomisedLabels;
}
现在我们可以修改您的 randomise返回类型为 void 的方法而是将结果存储在 randomisedLabels :
public void randomise(Label[] lbl){
Random randomiseArr = new Random();
for (int i = 0; i < lbl.length; i++) {
int randomIndexToSwap = randomiseArr.nextInt(lbl.length);
Label temp = lbl[randomIndexToSwap];
lbl[randomIndexToSwap] = lbl[i];
lbl[i] = temp;
}
// Instead of returning the array, store it so it can be used later
randomisedLabels = lbl;
}
这样做可以让您调用 randomise一次并将调用结果与 getRandomisedLabels() 一起使用多次没有数据被操纵。
编辑:正如 Cliabhach 下面提到的,这种方法仅在您使用 backend 的相同实例时才有效。类,因为不同的数组存储在类的每个实例中。

关于java - 如何将数组从一个类转移到另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62886488/

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