数组在一个类中初始化但内容在另一个类中无法访问

时间:2017-09-13 07:30:33

标签: java javafx

我有一个javafx应用程序,它有两个类,即" Client"和" Interface_Client_Impl"。我在" Client"中定义了一个int数组。 class和初始化该数组的函数。当我尝试从Interface_Client_Impl访问索引i处的数组内容时,它总是返回0. Interface_Client_Impl类是远程访问的,并且能够获取变量的值而不是数组。我哪里错了。 -_- 这就是我所拥有的。

public class Client extends Application
{
    public int size = 4;
    public int array[] = new int[size];
    public int min = 1;
    public int max = 99;

    public static void main(String[] args) throws Exception
    {
         launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws NotBoundException, RemoteException 
    {
        initialize_arr();
        //other codes
    }

    public void initialize_arr()
    {
        Random rand = new Random();
        for(int i = 0; i < size; i++)
        {//initialize with random values
            int val = rand.nextInt(max - min + 1) + min;
            array[i] = val;
        }
    }
}

//另一个班级

public class Interface_Client_Impl extends UnicastRemoteObject implements Interface_Client
{
    public Client client = new Client();

    @Override
    public int exchange(int val)
    {
        Random rand = new Random();
        int pos = rand.nextInt(client.size);
        int return_val = client.array[pos];
        client.array[pos] = val;
        return return_val;
    }
}

1 个答案:

答案 0 :(得分:0)

您刚刚在Interface_Client_Impl类

中为Client创建了实例

您需要调用客户端实例的数组初始化。您可以通过以下两种方式来完成

通过调用公共方法client.start(primaryStage)

通过调用公共方法client.initialize_arr()