1

我不太确定这意味着什么或它在做什么,有人可以详细说明吗?

Player player = (Player) sender;
4

6 回答 6

6

它获取发件人引用的对象,并尝试将其转换为 Player 类型。Java 对象是强类型的,这意味着您必须声明对象的类型。

如果 sender 引用的对象无法转换为 Player 对象,则 InvalidCast 将引发异常。

于 2011-06-19T15:40:39.920 回答
1

那是一个普通的旧 java 类型转换。有关完整详细信息,请参阅 JLS Casting 转换

它假定它sender与 a 类型兼容Player

于 2011-06-19T15:41:10.397 回答
0

它将 sender 转换为 Player 对象。否则,玩家的数据类型将与发送者的数据类型不匹配。如果发件人最初可以被声明为子类,通常会这样做。

于 2011-06-19T15:41:19.047 回答
0

这是一个任务,一个cast操作。

cast通过这个问题的答案,您可以了解很多关于 java运算符的知识: Java cast 运算符是如何工作的?

于 2011-06-19T15:42:09.623 回答
0

当您阅读它“将”发件人“转换”为播放器时,不要认为它真的会转换它们。

很多时候你传递一个变量,它可能是很多不同的东西,然后当你弄清楚它是什么东西时,你使用强制转换运算符来实际制作其中一个东西。

这是一个不完美的类比:

想象一下,你接到当地计算机俱乐部主席的电话,他说俱乐部的一名成员会来找你。

现在,你不知道哪个成员来了,是女性还是男性,年龄甚至他们的名字,你对未来访问者的属性一无所知。

一旦他们出现在您的门口,您就会意识到这是您的好友弗兰克,现在在您的脑海中,上面代码中的“访客”(发件人)是“弗兰克”的 CAST,您对他了解很多,年龄,有多少孩子, 地址等

在 CAST 之前,您对发送者知之甚少,但在 cast 之后,您现在可以访问有关新对象的各种信息,因为您现在知道它的 TYPE。

希望这可以帮助。

于 2013-02-19T15:44:10.743 回答
0

这是一个简单的java类型转换......

这是在bukkit minecraft 服务器插件中吗?如果是,它所做的就是对玩家发送命令到Player对象进行类型转换。Player对象用于针对代码中的特定玩家。播放器对象将具有发送命令的播放器的名称。

于 2014-09-09T01:06:57.523 回答