将对象转换为原始类型

shk*_*a19 5 java casting

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

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

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

谢谢

Veg*_*ger 3

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

你可以做的事情:

  • 你需要真正确定它就是你认为的那个物体
  • 也许添加一个try-catch块来捕获ClassCastException(为了更加确定)
  • 最后添加@SuppressWarnings注释,因为你想覆盖Java的安全检查(因为你认为更了解)