我现在不知道Java无法理解错误在哪里。使用Java 7。
public void chatMessage(String userName, String message) {
IScope scope = Red5.getConnectionLocal().getScope();
ISharedObject chat = getSharedObject(scope, "chat");
List<ChatHistoryItem> history = (List<ChatHistoryItem>) chat.getAttribute("remoteHistory");
ChatHistoryItem item = new ChatHistoryItem();
item.user = userName;
item.date = new Date();
item.message = message;
history.add(item);
chat.setAttribute("remoteHistory", history);
}
错误:Unchecked cast from Object to List<ChatHistoryItem>
答案 0 :(得分:1)
问题是因为您无法安全地确定ISharedObject.getAttribute
方法调用将返回的类型。这一行发生在这一行:
List<ChatHistoryItem> history = (List<ChatHistoryItem>) chat.getAttribute("remoteHistory");
如果此方法返回的object
不是List<ChatHistoryItem>
类型,您将收到ClassCastException
。如果方法确实返回了相应的类型,那么代码仍会执行。
我假设这不是破坏您的代码的错误,它只是来自您使用的IDE的警告?