2014-11-15 30 views
-2

我會盡力去做。我有一個建議者課程和我的司機,從建議者課程調用。Java錯誤,可怕的「無法找到符號」

與錯誤的問題我Advisee類看起來是這樣的:

public String clearedToGraduateMessage(Advisee advisee1, Advisee advisee2, 
     Advisee advisee3, Advisee advisee4, Advisee advisee5) 
    { 
     if (graduationRequirements) 
     {  
      graduationMessage = ("\nYes - all requirements have been met"); 
     } 
     if (!graduationRequirements) 
     { 
      graduationMessage = ("No - "); 
      if (getHoursCompleted() < 120) 
      {   
       graduationMessage += (" not enough hours;"); 
      } 
       else if (majorSheet == false) 
       { 
        graduationMessage += (" not completed major sheet;"); 
       } 
       else if (intentToGraduate == false) 
       { 
        graduationMessage += (" not filed intent to graduate"); 
       } 
      } 

     if (advisee1.metGraduationRequirements(advisee1, advisee2, advisee3, advisee4, advisee5) 
      == true) 
      advisee1.graduationMessage = ("\nYes - all requirements have been met"); 
     else 
      { 
       advisee1.graduationMessage = ("No - "); 
       if (advisee1.hours < 120) 
        advisee1.graduationMessage += (" not enough hours;"); 
       else if (majorSheet == false) 
        advisee1.graduationMessage += (" not completed major sheet;"); 
       else if (intentToGraduate == false) 
        advisee1.graduationMessage += (" not filed intent to graduate"); 
      } 

的 「如果(advisee1.metGraduationRequirements(advisee1,advisee2,advisee3,advisee4 advisee5)==真)」 被重複4次以上爲他們相應的參考,爲了不張貼大量的代碼我不會張貼。

司機看起來是這樣的:

case 4: //display all advisees that have been cleared to graduate 
        strClearedToGraduateMessage = clearedToGraduateMessage(advisee1, 
         advisee2, advisee3, advisee4, advisee5); 

這是一個switch語句,因爲我使用的菜單。

「唯一」,當我嘗試編譯出現的錯誤是:

Proj4.java:142: error: cannot find symbol 
        strClearedToGraduateMessage = clearedToGraduateMessage(advisee1, 
               ^
    symbol: method clearedToGraduateMessage(Advisee,Advisee,Advisee,Advisee,Advisee) 
    location: class Proj4 
1 error 

如果有人可以幫我找出這個錯誤,將不勝感激。謝謝。

+0

方法clearedToGraduateMessage(),根據你的問題,是在類Advisee。該錯誤消息告訴您正試圖在類型爲Proj4的對象上調用此方法。 –

+0

粘貼其他代碼,請從clearedToGraduateMessage的確切位置調用 – SMA

回答

0

您沒有顯示所有相關代碼,但似乎在Proj4(驅動程序類)中,您尚未創建要引用的Advisee對象的實例。你需要的東西,如:

Advisee myAdvisee = new Advisee(); 
String result = myAdvisee.clearedToGraduateMessage(...); 

除非你Advisee方法是靜態的,您需要創建要引用(即使靜態的,你還需要引用類的名字)的對象。

我會建議花一些時間閱讀The Java Tutorials/Classes

+0

謝謝,我在程序的早期創建了一個名爲defaultAdvisee的實例,但忘記了引用它。 – ChelseaH