[英]Passing an ObjectOutputStream to another class
我正在開發一個GUI程序以在客戶端/服務器系統中使用,它將數據保存在Vector
。 建立連接時會創建一個ObjectOutputStream
和ObjectInputStream
,但是當我嘗試打開一個連接時,我不確定如何將其傳遞到新類中。 在我的Startup
類中,我有一個Serializable
對象( Message m
),該對象已創建並傳遞到不同的類中,以修改不同的字段,以及在客戶端和服務器之間建立連接
在我的Startup
類中,我有以下代碼...
m.yourName = tmyName.getText();
m.department = tdepartment.getText();
if (m.yourName != null && m.department != null) {
client = new Socket(server, port);
oout = new ObjectOutputStream(client.getOutputStream());
oin = new ObjectInputStream(client.getInputStream());
toutput.setText("Connected");
oout.writeObject(m);
new WhatToDo (m, oout, oin);
}
在WhatToDo
類中,我有此代碼...
Message m;
ObjectOutputStream oout;
ObjectInputStream oin;
public WhatToDo(Message a, ObjectOutputStream oout2, ObjectInputStream oin2){
m = new Message();
m = a;
// this is what i'm unsure about and need help with
oout = oout2; //but need to construct oout first
oin = oin2; //but need to construct oin first
}
如果我像在Startup
一樣執行新的ObjectOutputStream
和ObjectInputStream
,則將創建到服務器的新連接。 我希望使用WhatToDo
在Startup
中創建的現有Streams
。 提前謝謝你的幫助!
我使用的是帶有按鈕的ActionListener
,因此需要將流保存在構造函數中,以便以后在ActionListener
使用。
我希望使用現有的流
這正是您的代碼現在所做的。 您對“但需要構建”的評論不正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.