5

我正在尝试Collection<myClass>通过网络发送。我将它转换为一个对象,并以这种方式发送它。

我认为对在网络中传递的项目进行建模的最佳方法是通过一个对象,因为我事先不知道它可能是什么(在这个例子中,它是一个集合,但有时它是一个地图或任何其他你能想到的东西)。这有点像套接字在 C 中的工作方式,只有接收者和发送者知道他们正在发送/接收什么,并适当地转换对象,而连接只关心字节并正确传输它们。

但是,当接收到 Object 时,如果我尝试将其强制转换回 ,则会出现collection<myObject>一个警告,其中提到了不安全的类型转换。我可以添加@suppressWarnings,但是为了避免这个警告,最好的方法是什么?

谢谢

4

2 回答 2

3

由于您(尽管主要是 Java)不知道您收到的对象的类型,因此不可能安全地转换它。

你可以做的事情:

  • 您需要真正确定它是您认为的对象
  • 也许添加一个try-catch块来捕获ClassCastException(要格外确定)
  • 最后添加@SuppressWarnings注解,因为你想覆盖 Java 的安全检查(因为你想知道更好)
于 2013-01-28T22:05:08.610 回答
1

考虑使用一些中间格式进行序列化,例如 JSON 或 XML。有很多库可以将对象编组和解组到 JSON 中或从 JSON 中解组。例如GSON。您免费获得的是语言互操作性,因为另一方面,可能有任何语言的程序。

于 2013-01-28T22:06:38.460 回答