Я получил это исключение, когда я выполняю этот код? Любая помощь, пожалуйста?Исключение в теме «main» java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
public static void main(String[] args) throws SQLException {
professeur f = new professeur();
ArrayList<Integer> arl =new ArrayList<Integer>();
int k=0;
etudiant e = new etudiant();
List<etudiant> list = e.getAll();
List<professeur> l = f.getAll1();
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < l.size(); j++) {
if (list.get(j).getIde()==l.get(i).getIdp()) {
k=list.get(i).getIde();
System.out.println(list.get(i).getNome());
}
break;
}
professeur p=new professeur();
List <professeur> c= p.findAllbyID(k);
System.out.println(c.get(i).getNomp());}
}
}
Помощь в совет: научиться использовать отладчик! – Andremoniy
Комментарий к стилю кода: название ваших переменных ** очень ** запутывает. Вы создаете объект класса «professeur» (имена классов должны начинаться с верхнего регистра битвы). И тогда у этого класса «professur» есть метод 'getAll1()', который должен возвращать ... список профессоров? Это звучит крайне странно. Прежде всего, имя метода должно сказать что-то о том, что он будет делать, например, «getAssociatedProfesseurs» или что-то в этом роде. И, конечно же; с точки зрения ОО; он просто чувствует себя не так, что один профессор предлагает метод возвращения большего количества профессоров. – GhostCat
Продолжался стиль кодирования: используйте синтаксис foreach для итерирования списков, например 'for (Etudiant etudiant: e.getAll())' (где я «исправил» имя класса для запуска верхнего регистра). Это намного проще ** писать, читать и поддерживать, чем C-стиль для циклов. – GhostCat