1
2
你仍然得到
类型擦除后,赋值为:
当然,这是成功的,因为一切都是一个对象(除非它是基元的,但这样你就不能在这里使用泛型)。 演员阵容实际上被推到了呼叫站点:
(尝试反编译代码,您将看到
所以 那个 是引发异常的位置,您应该从堆栈跟踪中注意到这一点。
不。通过使用此模式,您将得到您应得的。强制转换是告诉编译器信任您的一种方式,因为您知道一些它不知道的类型信息;在这种情况下,您只需猜测类型,然后就搞错了。 返回对象,并在调用站点检查类型。是的,它会更丑;但丑陋的代码胜过美丽但破碎的代码。仅仅是你施展的事实就应该让你停下来思考一下 可以 此处出错,而不是将其隐藏在此方法中。 |
Jiji · 将简单对象强制转换为简单的通用接口 6 年前 |
tobeypeters · 反射铸造 6 年前 |
Alex · 是否改为存储字符串的整数的通用ArrayList? 6 年前 |
Kai · 如何在C#中转换会话中存储的词典? 6 年前 |
Ján ЯabÄan · 布尔值到双精度的快速转换方法 6 年前 |