【发布时间】:2019-07-25 21:15:12
【问题描述】:
我从 RPC 服务收到了一个通用的 Object 类型实例,我想将它转换为 MyClass 类型实例,这个操作的时间复杂度是多少?性能对我的应用程序至关重要。 (适用于 Java 和 C# 等语言)
例如:Employee employee = (Employee) person; 或 PurchaseData purchaseData = (PurchaseData) genericData;
【问题讨论】:
-
转换是在编译时解决的,所以在运行时并不重要
-
如果是编译时动作,那为什么会出现运行时转换失败?
-
因为你在编译时说:“我 assume x 是一个 X”。在运行时,x 仍然可能是 Y。强制转换是对编译器的指令,告诉编译器:“我比你更清楚,这里的 x,我认为它是 X,所以请对待就这样”。
-
OP 将 Java 和 C# 混为一谈,确实是在自取其辱。它们是具有不同运行时和编译时行为的不同语言。结果,他们得到了混乱的相互交织的反应。我的建议是就单一语言提出这类问题。仅仅因为 2 种语言具有“相似”的语法,并不意味着它们的行为应该相同。
-
澄清请求:您的问题得到充分回答了吗?如果是这样,请考虑accepting 一个答案。这样做有助于未来的读者确定问题是否已解决,并对花时间回答您的人表示感谢。否则请提供反馈,以便人们进一步调整他们的答案。
标签: java c# optimization casting time-complexity