将对象转换为原始类型

时间:2013-01-28 21:59:49

标签: java casting

我正在尝试通过网络发送Collection<myClass>。我把它作为一个对象,然后我就这样发了。

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

但是,当收到对象时,如果我尝试将其强制转换回collection<myObject>,则警告会提到不安全的类型转换。我可以添加@suppressWarnings,但是这样做的最佳方式是什么才能避免这种警告?

由于

2 个答案:

答案 0 :(得分:3)

由于您(尽管主要是Java)不知道您收到的对象的类型,因此无法安全地投射它。

你可以这样做:

  • 您需要确定它是您认为的对象
  • 可能会添加try-catch块以捕获ClassCastException(更加确定)
  • 最后添加@SuppressWarnings注释,因为你想要覆盖Java的安全检查(因为你想要更好地了解)

答案 1 :(得分:1)

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