0

私は今、Javaがどこに間違いがあったのか理解できません。Java7を使用します。

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>

4

1 に答える 1

1

ISharedObject.getAttribute問題は、メソッド呼び出しによって返されるタイプを安全に判別できないためです。これはこの行で発生します:

List<ChatHistoryItem> history = (List<ChatHistoryItem>) chat.getAttribute("remoteHistory");

このobjectメソッドによって返されるタイプがタイプでないList<ChatHistoryItem>場合は、を受け取りますClassCastException。メソッドが適切なタイプを返す場合でも、コードは実行されます。

これはコードを壊すエラーではなく、使用しているIDEからの単なる警告だと思いますか?

于 2013-03-06T14:00:58.957 に答える