我不太确定这意味着什么或它在做什么,有人可以详细说明吗?
Player player = (Player) sender;
它获取发件人引用的对象,并尝试将其转换为 Player 类型。Java 对象是强类型的,这意味着您必须声明对象的类型。
如果 sender 引用的对象无法转换为 Player 对象,则 InvalidCast 将引发异常。
那是一个普通的旧 java 类型转换。有关完整详细信息,请参阅 JLS Casting 转换。
它假定它sender
与 a 类型兼容Player
。
它将 sender 转换为 Player 对象。否则,玩家的数据类型将与发送者的数据类型不匹配。如果发件人最初可以被声明为子类,通常会这样做。
这是一个任务,一个cast
操作。
cast
通过这个问题的答案,您可以了解很多关于 java运算符的知识: Java cast 运算符是如何工作的?
当您阅读它“将”发件人“转换”为播放器时,不要认为它真的会转换它们。
很多时候你传递一个变量,它可能是很多不同的东西,然后当你弄清楚它是什么东西时,你使用强制转换运算符来实际制作其中一个东西。
这是一个不完美的类比:
想象一下,你接到当地计算机俱乐部主席的电话,他说俱乐部的一名成员会来找你。
现在,你不知道哪个成员来了,是女性还是男性,年龄甚至他们的名字,你对未来访问者的属性一无所知。
一旦他们出现在您的门口,您就会意识到这是您的好友弗兰克,现在在您的脑海中,上面代码中的“访客”(发件人)是“弗兰克”的 CAST,您对他了解很多,年龄,有多少孩子, 地址等
在 CAST 之前,您对发送者知之甚少,但在 cast 之后,您现在可以访问有关新对象的各种信息,因为您现在知道它的 TYPE。
希望这可以帮助。
这是一个简单的java类型转换......
这是在bukkit minecraft 服务器插件中吗?如果是,它所做的就是对玩家发送命令到Player
对象进行类型转换。Player
对象用于针对代码中的特定玩家。播放器对象将具有发送命令的播放器的名称。