我正在尝试通过网络发送Collection<myClass>
。我把它作为一个对象,然后我就这样发了。
我认为模拟化在网络中传递的项目的最佳方法是通过Object,因为我事先并不知道它可能是什么(在这个例子中,它是一个Collection,但有些时候它是一个Map或者你能想到的任何其他事情)。这有点像套接字在C中工作的方式,只有接收者和发送者知道他们发送/接收的内容,并适当地转换对象,而连接只关心字节并正确传输它们。
但是,当收到对象时,如果我尝试将其强制转换回collection<myObject>
,则警告会提到不安全的类型转换。我可以添加@suppressWarnings,但是这样做的最佳方式是什么才能避免这种警告?
由于
答案 0 :(得分:3)
由于您(尽管主要是Java)不知道您收到的对象的类型,因此无法安全地投射它。
你可以这样做:
try-catch
块以捕获ClassCastException
(更加确定)@SuppressWarnings
注释,因为你想要覆盖Java的安全检查(因为你想要更好地了解)答案 1 :(得分:1)
考虑使用一些中间格式进行序列化,如JSON或XML。有大量的库可用于将对象编组到JSON中或从JSON中解组对象。例如GSON。你得到的免费是语言互操作性,因为另一方面,可能有任何语言的程序。