Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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中同一套接字上的两个不同对象_Java_Sockets_Networking - Fatal编程技术网

Java中同一套接字上的两个不同对象

Java中同一套接字上的两个不同对象,java,sockets,networking,Java,Sockets,Networking,发件人: 接收人: //不知道如何找到应将对象强制转换到的对象: 有没有办法在同一个对象流上发送两个不同的对象 -Pk使用instanceof 这两个对象都相关吗?一个继承另一个吗?如果是这样,您需要明确检查 说一个父类->B A a = new A(); B b = new B(); C c = new C(); //say obj is the object you read from your socket. if(a instanceof A){ System.out.pr

发件人:

接收人:

//不知道如何找到应将对象强制转换到的对象:

有没有办法在同一个对象流上发送两个不同的对象

-Pk

使用instanceof

这两个对象都相关吗?一个继承另一个吗?如果是这样,您需要明确检查

说一个父类->B

A a = new A();
B b = new B();
C c = new C();
 //say obj is the object you read from your socket.
if(a instanceof A){
      System.out.println("a is instance of A, obj can be cast as A");
      A remoteA = (A)obj; //wont throw classcast exception!!
}
if(b instanceof B){
      System.out.println("b is instance of B, obj can be cast as B");
      B remoteB = (B)obj; //wont throw classcast exception!!
}
if(c instanceof C){
      System.out.println("c is instance of C,obj can be cast as C"); 
      C remoteC = (C)obj;  //wont throw classcast exception!!
}
所以b的b实例和A的b实例都是真的。所以你需要小心。首先检查子类。

使用instanceof

这两个对象都相关吗?一个继承另一个吗?如果是这样,您需要明确检查

说一个父类->B

A a = new A();
B b = new B();
C c = new C();
 //say obj is the object you read from your socket.
if(a instanceof A){
      System.out.println("a is instance of A, obj can be cast as A");
      A remoteA = (A)obj; //wont throw classcast exception!!
}
if(b instanceof B){
      System.out.println("b is instance of B, obj can be cast as B");
      B remoteB = (B)obj; //wont throw classcast exception!!
}
if(c instanceof C){
      System.out.println("c is instance of C,obj can be cast as C"); 
      C remoteC = (C)obj;  //wont throw classcast exception!!
}

所以b的b实例和A的b实例都是真的。所以你需要小心。首先检查子类。

socket.writeObjecttypeid+B???socket.WriteObject类型ID+B???谢谢你抽出时间。我觉得我不能恰当地提出我的问题。我正在通过对象流发送此对象。我从客户端通过套接字发送两个对象。在服务器端,我需要将其类型转换为正确的类型。我该怎么做?@Blacklabel,我知道你的问题,我回答正确,使用instanceof可以确定对象属于哪个类,因此如果instanceof A为true,则可以强制转换AOObject…它不会引发异常:试试看:我会修改代码,以防万一。谢谢你的时间。我觉得我不能恰当地提出我的问题。我正在通过对象流发送此对象。我从客户端通过套接字发送两个对象。在服务器端,我需要将其类型转换为正确的类型。我该怎么做?@Blacklabel,我知道你的问题,我回答正确,使用instanceof可以确定对象属于哪个类,因此如果instanceof A为true,则可以强制转换AOObject…它不会引发异常:试试看:我会修改代码,以防万一。
B b =  new B()