Всем привет. Пишу плагин для Jira, в переопределяемом
override методе требуется что бы метод возвращал тип:
List<IssueAction>
List и
IssueAction это интерфейсы.
Я погуглил и нашел пример возвращаемого значения, он был такой:
return Lists.newArrayList(
new GenericMessageAction("Запись 1"),
new GenericMessageAction("Запись 2")
);
GenericMessageAction - Это класс, который реализует интерфейс
IssueAction
newArrayList функция из
com.google.common.collect.Lists возвращающая
ArrayList который реализует интерфейс
List
То есть, получается что передавая экземпляры
GenericMessageAction в список, метод
newArrayList мне возвращает
ArrayList<GenericMessageAction>
Тогда я решил вернуть список через переменную и вернуть, вот так:
ArrayList<GenericMessageAction> list = Lists.newArrayList(
new GenericMessageAction("Запись 1"),
new GenericMessageAction("Запись 2")
);
return list;
Так Java не дает мне вернуть list, т.к. типы не совпадают.
Но я не понимаю почему, ведь требуется вернуть интерфейсы
List<IssueAction>, я возвращаю
ArrayList<GenericMessageAction>, где
ArrayList реализует
List а
GenericMessageAction реализует
IssueAction, вот и получается
List<IssueAction>.
Что я делаю не так?