谁能解释一下TextMessage textMessage = (TextMessage) message;的工作原理吗?(JAVA 8)
消息不是克雷可的实例
if(message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String body = textMessage.getBody();
}预期产出良好。
发布于 2019-08-13 13:07:47
它可以工作,因为当您将textMessage设置为相等时,您正在对消息对象进行强制转换。实际上,您告诉Java不要理会它认为消息是什么,而是将其视为一个TextMessage对象。这意味着它将通过编译器阶段。
在您的代码中,您已经做了适当的扩展来检查消息实际上是一个TextMessage。如果您没有这样做,如果您的代码在消息不是TextMessage的地方运行,那么您将得到一个Java类强制转换异常。
https://stackoverflow.com/questions/57478217
复制相似问题