Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ObjectOutputStream传递给另一个类_Java_Parameter Passing_Objectoutputstream_Objectinputstream - Fatal编程技术网

Java 将ObjectOutputStream传递给另一个类

Java 将ObjectOutputStream传递给另一个类,java,parameter-passing,objectoutputstream,objectinputstream,Java,Parameter Passing,Objectoutputstream,Objectinputstream,我正在开发一个用于客户机/服务器系统的GUI程序,该程序将数据保存在向量中。我有一个ObjectOutputStream和ObjectInputStream是在建立连接时创建的,但是当我尝试打开一个类时,我不知道如何将其传递到新类中。在我的Startup类中,我有一个Serializable对象(Message m),它被创建并传递到不同的类中,以修改不同的字段,并且在客户机和服务器之间建立连接 在我的启动课程中,我有以下代码 m.yourName = tmyName.getText(); m.

我正在开发一个用于客户机/服务器系统的GUI程序,该程序将数据保存在
向量中。我有一个
ObjectOutputStream
ObjectInputStream
是在建立连接时创建的,但是当我尝试打开一个类时,我不知道如何将其传递到新类中。在我的
Startup
类中,我有一个
Serializable
对象(
Message m
),它被创建并传递到不同的类中,以修改不同的字段,并且在客户机和服务器之间建立连接

在我的
启动
课程中,我有以下代码

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);
}
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
}
WhatToDo
类中,我有这个代码

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);
}
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
}
如果我像在启动时那样执行新的
ObjectOutputStream
ObjectInputStream
,我将创建到服务器的新连接。我希望使用在
WhatToDo
中的
Startup
中创建的现有
流。提前感谢您的帮助

我正在使用一个按钮按下的
ActionListener
,因此流需要保存在构造函数中,以便以后在
ActionListener
中使用

我希望使用现有的数据流


这正是您的代码现在所做的。您关于“但需要构造”的评论不正确。

您当前的代码有什么问题?无论您做什么,看起来都不错。除了您缺少
上一个to语句。谢谢,我担心在不构造它们的情况下使用它们(空指针错误),但这里似乎不是这样。非常感谢。