我有一個javafx應用程序,它有兩個類,即「Client」和「Interface_Client_Impl」。我在「Client」類中定義了一個int數組,並初始化了該數組。當我試圖從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;
}
}
'Interface_Client_Impl.client'情況下,纔會創建(稱爲構造函數),但沒用過由fx框架,因此它的'開始'方法不會被觸發。因此,該數組未被初始化。您必須訪問框架創建的實例,其中調用了「start(Stage primaryStage)」,而不是創建自己的實例。 – fairtrax
[這個問題]的答案(https://stackoverflow.com/questions/33303167/javafx-can-application-class-be-the-controller-class)有一個相關的解釋。 – Itai