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

Java 如何将数组从一个类转移到另一个类?,java,javafx,Java,Javafx,我试图从一个类中的一个数组获取数据到另一个类(以便复制结果)。我知道一般情况下,您会使用get set方法来实现这一点,但是,我不确定如何使用我拥有的类来实现这一点 这个方法(在我的后端类中)将标签数组随机化,我希望结果出现在两个不同的类中。一个类我可以得到结果,因为我有一个标签数组,另一个类也是如此(但我希望第一个类得到相同的结果,而不是另一个不同的随机数组) 在您的后端类中,我建议您有一个可以容纳随机化数组的字段。这样,您就可以通过getter访问多个类之间的数组 例如,您可以在后端类的顶部

我试图从一个类中的一个数组获取数据到另一个类(以便复制结果)。我知道一般情况下,您会使用get set方法来实现这一点,但是,我不确定如何使用我拥有的类来实现这一点

这个方法(在我的后端类中)将标签数组随机化,我希望结果出现在两个不同的类中。一个类我可以得到结果,因为我有一个标签数组,另一个类也是如此(但我希望第一个类得到相同的结果,而不是另一个不同的随机数组)


在您的
后端
类中,我建议您有一个可以容纳随机化数组的字段。这样,您就可以通过getter访问多个类之间的数组

例如,您可以在
后端
类的顶部有这样一个字段:

private Label[]随机标签

然后,您可以获得字段的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;
}
public void randomise(标签[]lbl){
Random randomiseArr=新的Random();
对于(int i=0;i
这样做将允许您调用一次
randomise
,并将调用结果与
getRandomisedLabels()
一起使用多次,而无需操纵数据


EDIT:正如下面提到的Cliabhach,这种方法仅在使用
后端类的同一实例时有效,因为类的每个实例中存储了不同的数组。

因此,您只需要返回
生成的数组。随机化(lbl)
可以在多个类中访问吗?我在理解第二段时遇到了一些困难,特别是关于哪个类在做什么。你能用不同的名字来描述他们吗?@parthlr,是的,这正是我想做的:)你真的需要发布一个帖子来说明问题所在。为两个不同的控制器提供相同的UI组件集是没有意义的,因为您只能在一个场景中使用给定的
标签(例如),并且在该场景中只能使用一次。您应该真正使用MVC方法将数据(而不是标签)存储在后端模型中,并与两个控制器共享该模型。参见,例如。另请参见。OT:不要重新发明轮子。用于随机排列列表。您认为是否值得一提的是,
后端
的实例需要相同才能工作?@Cliabhachit@Huzaifah“类的实例”只是指“由该类创建的对象”。也就是说,它们必须是相同的实际对象(而不仅仅是来自同一类的对象)。后端的“实例”是什么意思?如果你不得不问,是时候学习语言基础教程了;)
    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};
}
public Label[] getRandomisedLabels() {
    return 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;
}