2015-08-29 2 views
0

Я продолжаю получать эти две ошибки и, похоже, не понимаю, почему. Эти ошибки неожиданно появились и в других методах, далее в том же классе. Я пытался найти двойные объявления, но не смог найти их. Кроме того, я обратил внимание на то, чтобы написать метод в рамках другого метода. Помощь будет очень признательна! :)«Дублировать локальную переменную» и «void - недопустимый тип для переменной». Ошибки

public void connectStudentToCourse(long studentID, String courseID) 
{ 
    if (studentID >= 0 && courseID != null) 
    { 
     boolean flag = false; 
     Course tempCourse = new Course(courseID); 
     tempCourse = sData.getCourses().get(sData.getCourses().indexOf(courseID)); 
     Student stu = new Student(studentID); 
     stu = sData.getStudents().get(sData.getStudents().indexOf(studentID)); 
     if (tempCourse != null && stu != null) 
     { 
      if (tempCourse.getPreCourses() != null) 
       for (Course c : tempCourse.getPreCourses()) 
       { 
        for (Course passed : stu.getCompletedCourses()) 
        { 
         if (passed.equals(c)) 
          flag = true; 
        } 
        if (flag == false) 
        { 
         MyFileLogWriter.writeToLogFile("Failed to connect Student "+studentID+" to course "+courseID+"\n", false); 
         return; 
        } 
        else flag = false; 
       } 
      if (tempCourse.addStudent(stu)) 
      { 
       if (stu.addCourse(tempCourse)) 
       { 
        MyFileLogWriter.writeToLogFile("Student "+stu.getId()+" connected to course "+tempCourse.getCourseID()+" successfully\n", false); 
        return; 
       } 
       else   //RollBack 
        tempCourse.removeStudent(stu); 
      } 
     } 
    } 
    MyFileLogWriter.writeToLogFile("Failed to connect Student "+studentID+" to course "+courseID+"\n", false); 
} 
+1

Убедитесь, что ваши кронштейны сбалансированы. –

+0

Где ошибки? Вы пытались уменьшить это до минимального примера? –

+0

Я подозреваю, что проблема на самом деле прямо * до * этого метода - я предполагаю, что у вас недостаточно закрывающих скобок, чтобы закрыть предыдущий метод. –

ответ

0

Я думаю, вы должны добавить открывающую скобку на 2, если заявление и закрыть его, это может решить вашу проблему ...

+0

Это хорошая идея, чтобы добавить эти фигурные скобки, но это не решит проблему. Оператор if хорош без скобок, так как это простой нулевой защитник для цикла. – Andreas

+0

Да @ Аndreas ваше право, но это второе, если без скобок применяется только для первой строки, поэтому я думаю, что лучше добавить скобки для этого, если. –

+0

Лучше? Да. Но это не * ответ * на проблему. – Andreas

0

Только тогда, когда я вырезал все проблемные методы из класса, я заметили отсутствующий «}» в вышеописанном методе. Eclipse не показывал эту отсутствующую фигуру, только пока я не удалил весь остальной код, поэтому я не мог сказать, где он пропал до удаления. Я добавил недостающую скобку и снова вставил оставшиеся проблемные методы обратно в класс, и все ошибки исчезли! Решение было намного проще, чем я ожидал. @ PM77-1, @Jon Skeet и @Andreas - вы все ЛЕГЕНДЫ !! Огромное спасибо!! :)

Смежные вопросы