Предположительно getConnections()
возвращает ноль, поэтому l
равно нулю, поэтому попытка вызова l.size()
вызывает исключение.Мы не знаем, что делает getConnections()
.
Обратите внимание, что это тоже выглядит подозрительно:
Connection myConn = new MyConn();
myConn = myCall.getEarliestConnection();
Почему вы создаете экземпляр MyConn
только в первой строкевыбросить снова?Почему бы просто не использовать:
Connection myConn = myCall.getEarliestConnection();
В общем случае локальные переменные следует объявлять как можно позже, в идеале, когда у вас есть полезное значение - поэтому в вашем методе вы можете объявить c
в цикле присвойте t
значение в объявлении, объявите l
в точке назначения и т. д. Вы также должны рассмотреть возможность использования обобщений, где это возможно - например, List<MyConn>
вместо просто необработанных List
введите.
РЕДАКТИРОВАТЬ: В отличие от принятого ответа, я бы предложил изменить getConnections()
на всегда , чтобы вернуть ненулевое значение, возвращая пустой список, если нет соединений.С этим будет легче работать.