这段代码做了什么?

时间:2011-06-19 15:37:42

标签: java minecraft

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

Player player = (Player) sender;

6 个答案:

答案 0 :(得分:6)

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

如果发件人引用的对象无法强制转换为Player对象,则InvalidCast将抛出异常。

答案 1 :(得分:1)

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

它假设senderPlayer类型兼容。

答案 2 :(得分:0)

它将发件人转换为Player对象。否则,播放器的数据类型将不匹配发送方的数据类型。通常在发件人最初被声明为子类时完成。

答案 3 :(得分:0)

这是一项任务,cast操作。

您可以通过此问题的答案了解很多关于java cast运算符的内容:How does the Java cast operator work?

答案 4 :(得分:0)

当你读到'将'发送者'转换为播放器时,不要认为它会直接转换它们。

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

这是一个不完美的类比:

想象一下,你接到了当地电脑俱乐部主席的电话,他说俱乐部的一名成员会来看你的事情。

现在,你不知道哪个成员来了,如果它的女性或男性,多少岁甚至他们的名字,你对未来的访客属性一无所知。

一旦他们出现在你的门口,你就会意识到你的伙伴弗兰克,现在在你的脑海中,上面代码中的“访客”(发件人)是CAST到'Frank',你知道很多东西,年龄,有多少孩子,地址等。

在CAST之前,你对发件人知之甚少,但在演员之后你现在可以访问新对象的各种信息,因为你现在知道它的TYPE。

希望这有帮助。

答案 5 :(得分:0)

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

这是在 bukkit minecraft服务器插件吗?如果是,它的作用是将玩家发送命令到Player对象的类型。 Player对象用于在代码中定位特定玩家。玩家对象将具有发送命令的玩家的名称。