有人可以解释为什么 TextMessage textMessage = (TextMessage) message;
有效吗? (JAVA 8)
消息不是 Clonable 的实例
if(message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String body = textMessage.getBody();
}
预期产出良好。
最佳答案
它之所以有效,是因为当您将 textMessage 设置为等于消息对象时,您正在转换消息对象。实际上,您是在告诉 Java 忽略它认为的消息是什么,而是将其视为 TextMessage 对象。这意味着它将通过编译阶段。
在您的代码中,您已经尽职尽责地事先检查该消息是否确实是 TextMessage。如果您没有这样做,那么如果在任何时候您的代码运行时消息不是 TextMessage,您都会收到 Java 类强制转换异常。
关于java - 什么是 JAVA8 的类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57478217/