Вы можете попробовать настроить SQL-сервер:
ПРИМЕЧАНИЕ: ВСЕ TCP-порт - 1433. Наконец, перезапустите сервер.
Измените свой метод, чтобы использовать подстановочный знак:
public ArrayList<? extends MyInterface> getMyInterfaces() {
ArrayList<MyPojo> myPojos = new ArrayList<MyPojo>(0);
myPojos.add(new MyPojo(0));
myPojos.add(new MyPojo(1));
return myPojos;
}
Это предотвратит попытку вызывающего абонента добавить другие реализации интерфейса в список. В качестве альтернативы, вы можете просто написать:
public ArrayList<MyInterface> getMyInterfaces() {
// Note the change here
ArrayList<MyInterface> myPojos = new ArrayList<MyInterface>(0);
myPojos.add(new MyPojo(0));
myPojos.add(new MyPojo(1));
return myPojos;
}
Как обсуждалось в комментариях:
Обычно это лучше использовать интерфейсы вместо конкретных типов для возвращаемых типов. Таким образом, предлагаемая подпись, вероятно, будет одной из:
public List<MyInterface> getMyInterfaces()
public Collection<MyInterface> getMyInterfaces()
public Iterable<MyInterface> getMyInterfaces()
В этом случае я сделал бы это как это:
public ArrayList<MyInterface> getMyInterfaces() {
ArrayList<MyInterface> myPojos = new ArrayList<MyInterface>(0);
myPojos.add(new MyPojo(0));
myPojos.add(new MyPojo(1));
return myPojos;
}
MyPojo ist типа MyInterface (поскольку это реализует интерфейс). Это означает, можно просто создать Список с Интерфейсом, в котором Вы нуждаетесь.
Вы должны делать:
public ArrayList<MyInterface> getMyInterfaces() {
ArrayList<MyInterface> myPojos = new ArrayList<MyInterface>(0);
myPojos.add(new MyPojo(0));
myPojos.add(new MyPojo(1));
return myPojos;
}
Попытайтесь использовать интерфейсы везде кроме тех случаев, когда построение экземпляров и Вас проблемы уйдет:
public List<MyInterface> getMyInterfaces()
{
List<MyInterface> myInterfaces = new ArrayList<MyInterface>(0);
myInterfaces.add(new MyPojo(0));
myInterfaces.add(new MyPojo(1));
return myInterfaces;
}
, Поскольку другие уже сказали, использование MyInterface решает Вашу проблему. Также лучше использовать интерфейс List вместо ArrayList для типов возврата и переменных.
Выбор правильного типа от запуска должен лучше всего, однако ответить на Ваш вопрос, можно использовать стирание типа.
return (ArrayList<MyInterface>) (ArrayList) myPojos;