java - "if"语句 block 无法正常工作

标签 java if-statement objectinputstream

我实际上不知道这里发生了什么,但我正在编写服务器客户端应用程序,客户端向服务器发送一个字符串。我需要将字符串“x”发送到服务器,因此它开始运行code1,但是当我这样做时,服务器运行code3。最搞笑的是System.out.println(x);在控制台中打印“a”。

这是服务器代码片段(在win7上运行,javac编译器):

sInput = new ObjectInputStream(socket.getInputStream());
sOutput = new ObjectOutputStream(socket.getOutputStream());

String x = (String) sInput.readObject();
System.out.println(x);

if (x == "a") {
   /* 
    * code1
    */
} else if (x == "b") {
   /* 
    * code2
    */
} else {
   /* 
    * code3
    */
}

这就是客户端所做的(运行 osx、javac 编译器):

sInput = new ObjectInputStream(socket.getInputStream());
sOutput = new ObjectOutputStream(socket.getOutputStream());

String x = "a";
sOutput.writeObject(x);

我该如何解决?

附注我知道异常声明,它们被删除以使代码更短。

最佳答案

使用 equals 方法比较两个字符串的值。请参阅How do I compare strings in Java?了解更多信息。

关于java - "if"语句 block 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21838008/

相关文章:

java - java.io.ObjectInputStream 类型无法解析。它是从所需的 .class 文件中间接引用的

java - eclipse 火星 : Content Assistant doesn't complete when pressing dot

java - JPAContainer 保持数据库的连接打开

java - Glassfish v3.0.1 部署突然变慢

java - if 与条件条件相比的速度

Java ObjectInputStream(Socket套接字)重新启动整个应用程序?

Java - 通过 ObjectOutputStream 发送 ImageIcon 第一次有效,但之后就不行了

java - Room 如何通知 UI 数据发生了变化?

r - 如何对数据进行分类并绘制图表

java - 我需要一种更好的方法来减少代码行,其中有很多 if 语句和条件调用方法