Импорт подстановочного знака для интерфейса - PullRequest
2 голосов
/ 25 апреля 2019

Я хочу создать интерфейс для моего плагина, который использует другой класс в зависимости от версии сервера.

Я пытался включить следующее в мой интерфейс класса:

Map<String, EntityPlayer> getPlayers();

Однако «EntityPlayer» импортируется в зависимости от версии, поэтому я не могу это сделать. По сути, мне нужно, чтобы это был «подстановочный знак», где это может быть любой импорт EntityPlayer. Затем в классах, где реализован мой интерфейс, я могу использовать импорт для каждой версии.

Надеюсь, это проясняет, что я пытаюсь достичь и что я сделал до сих пор.

Спасибо всем.

1 Ответ

1 голос
/ 25 апреля 2019

Вы можете использовать универсальный интерфейс примерно так:

interface YourInterface<T> {
   Map<String, T> getPlayers();
}

Вы также можете использовать более конкретное ограничение, если EntityPlayer получено из родительского класса, например

interface YourInterface<T extends EntityParentClass> {
   Map<String, T> getPlayers();
}
...