这不会编译,任何建议表示赞赏。
...
List<Object> list = getList();
return (List<Customer>) list;
编译器说:无法转换 List<Object>
至List<Customer>
最佳答案
您总是可以通过先将任何对象向上转换为 Object 来将其转换为任何类型。在你的情况下:
(List<Customer>)(Object)list;
您必须确保在运行时列表只包含客户对象。
批评者说这样的转换表明你的代码有问题;你应该能够调整你的类型声明来避免它。但是Java泛型太复杂了,并不完美。有时您只是不知道是否有一个很好的解决方案可以满足编译器的要求,即使您非常了解运行时类型并且您知道您正在尝试做的事情是安全的。这种情况下,只要根据需要进行粗铸,就可以下类回家了。
关于java - 如何将 List<Object> 转换为 List<MyClass>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1917844/