JAVA8 的转换是什么?
What is casting for JAVA8?
有人可以解释为什么 TextMessage textMessage = (TextMessage) message;
有效吗? (JAVA 8)
TextMessage inherits Message
消息不是 Clonable
的实例
if(message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String body = textMessage.getBody();
}
预期的产出很好。
之所以有效,是因为当您将 textMessage 设置为等于它时,您正在转换消息对象。实际上,您是在告诉 Java 忽略它认为消息是什么,而是将其视为 TextMessage 对象。这意味着它将通过编译器阶段。
在您的代码中,您已经尽职尽责地预先检查该消息是否真的是 TextMessage。如果你没有这样做,如果在任何时候你的代码 运行 其中消息不是 TextMessage 你会得到一个 Java class 转换异常。
有人可以解释为什么 TextMessage textMessage = (TextMessage) message;
有效吗? (JAVA 8)
TextMessage inherits Message
消息不是 Clonable
的实例if(message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String body = textMessage.getBody();
}
预期的产出很好。
之所以有效,是因为当您将 textMessage 设置为等于它时,您正在转换消息对象。实际上,您是在告诉 Java 忽略它认为消息是什么,而是将其视为 TextMessage 对象。这意味着它将通过编译器阶段。
在您的代码中,您已经尽职尽责地预先检查该消息是否真的是 TextMessage。如果你没有这样做,如果在任何时候你的代码 运行 其中消息不是 TextMessage 你会得到一个 Java class 转换异常。