Каков наилучший способ проверить, передается ли объект в метод, расширенный заданным классом?
В настоящее время у меня есть метод, который принимает ByteBuffer данных для отправки, и класс 'player', которыйя написал и поставил в очередь данные на сервере ввода-вывода для отправки клиенту:
public void send(ButeBuffer toSend, Player player)
{
// prep the byte buffer for sending, and queue it on the IO server
}
То, что я хотел бы сделать, - это позволить передаваемому объекту проигрывателя быть любым объектом, расширяющимкласс игрока.Я сделал некоторые поиски и нашел что-то вроде этого:
public void send(ByteBuffer toSend, Player<? extends Player> player)
{
// prep the byte buffer for sending, and queue it on the IO server
}
Но это дает мне ошибки компиляции, и я не совсем понимаю, что происходит.Будет ли это правильный способ сделать это?И если так, может кто-нибудь объяснить, что конкретно делает этот код и почему он не работает, или связать меня со статьей, которая объясняет это более подробно.
Альтернативно, я полагаю, что я мог бы что-то настроитьнапример:
public void send(ByteBuffer toSend, Object player)
{
// Check that the player extends Player, using instanceof or something
// along those lines
// Prep the ByteBuffer, and queue the data to send
}
Однако этот код кажется мне хрупким по сравнению с приведенным выше кодом.
Любая помощь приветствуется.Спасибо:)