如何摆脱 ClassCastException

发布于 2024-12-11 16:08:51 字数 269 浏览 0 评论 0原文

假设我有 2 个完全不同的用户定义类 AB

A a = new A();

B b = new B();

. 。 .

<代码>。 。 .

a = (A) b; //我很确定这会引发 ClassCastException,但如何处理这个问题?

Lets assume i have 2 totally different user-defined classes A and B.

A a = new A();

B b = new B();

. . .

. . .

a = (A) b; //I'm pretty sure this raises a ClassCastException, but how to deal with this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苹果你个爱泡泡 2024-12-18 16:08:51

你不能,除非 B 派生自 A。
这就是 ClassCastException 的要点。

但既然 A 和 B 完全不同,为什么要首先转换它们呢?

You can't, unless B derives from A.
That's the point of a ClassCastException.

But since A and B are totally different, why would you want to convert them in the first place?

明月松间行 2024-12-18 16:08:51

在分配变量之前进行测试。

在 java 中:

if(a instanceof B)
    b = (B) a;

在 C# 中:

if(a is B)
    b = (B) a;

但正如有人提到的,如果你不从 c 派生类 a 和 b,我看不出这个作业有多大好处。

Testing before assign the variable.

In java:

if(a instanceof B)
    b = (B) a;

In C#:

if(a is B)
    b = (B) a;

But as someone mentioned if you do not derive the class a and b from c I cant see to much benefit of this assignment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文