解决方法
有一个替代方案,但它不是Box的方法:它是
Any::downcast_ref()
.感谢deref coersion和Boxes Deref-impl,你可以在Box< T>上调用T的方法了.直.因此,您可以在Box上调用Any :: downcast_ref()< Any>直:
let b: Box<Any> = Box::new(27u64); // The type of `ref_a` and `ref_b` is `&u64` let ref_a = b.downcast_ref::<u64>().unwrap(); let ref_b = b.downcast_ref::<u64>().unwrap(); println!("{} == {}",ref_a,ref_b);
还有Any::downcast_mut()
获得可变参考.