- Баллы
- 61
Объясните зачем так пишут CraftPlayer player = (CraftPlayer) player. Что это дает и откуда берут этого Craftplayer'a
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Если это обработчик команды - то для того чтобы писать из-под консоли.Объясните зачем так пишут CraftPlayer player = (CraftPlayer) player. Что это дает и откуда берут этого Craftplayer'a
Одно и то же, как руль и велосипед. Для ответа на ваш вопрос вам надо изучить Java, чтобы понять, для чего делают кастование.Вроде никакой. Одно и тоже
Речь идёт о кастовании, а не объявлении переменных.Приведу пример как понимаю я, например отловили событие,
public void onDrop(PlayerDropItemEvent e)
{
Player p = e.getPlayer();
Bla bla bla
}
//в коде не нужно будет прописывать e.getPlayer(); , достаточно будет поставить один символ p.
Есть такая вещь, как Bukkit API, она реализуется разными серверами и даёт нам более или менее уникальные интерфесы. Как реализовывать это API решают разработчики сами. В конкретном случае это ядро CraftBukkit, и реализует класс Player класс CraftPlayer, но это отход от API и уход вглубь конкретной реализации сервера. То есть если весьма грубо сказать, то Player -- это яблоко, а CraftPlayer -- это антоновка, и то и другое можно съесть. Яблоко нам не скажет о вкусе конкретнее, чем антоновка. Если мы возьмём какую-то другую реализацию, то там может и не быть(да и не должно быть) CraftPlayer'а, если вернуться к яблокам, то это будет например ранет. CraftPlayer нам даёт доступ к более глубинным функциям, которые не вынесены в API, но в то же время разработчики ядра вовсе не обязаны использовать в двух релизах с разницей в минуту одни и те же методы в CraftPlayer, в то время как для Player, они это делать обязаны.Объясните зачем так пишут CraftPlayer player = (CraftPlayer) player. Что это дает и откуда берут этого Craftplayer'a