2014-10-06 94 views
0

void類型不這是我的java類:這裏允許的servlet

public String year, title,detail; 
public League(String year,String title,String detail) 
{ 
    this.year=year; 
    this.title=title; 
    this.detail=detail; 
} 
public void getTitle() 
{ 
    System.out.println(""+year+""+title+""+detail+""); 
} 

這是我的servlet:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
    //Creats the set of league 
    leagueList=new LinkedList(); 
    leagueList.add(new League("2003","Spring","Soccer League(Spring`03)")); 
    leagueList.add(new League("2003","Summer","Summer Soccer Fest")); 
    leagueList.add(new League("2003","Fall","Fall Soccer League")); 
    leagueList.add(new League("2004","Spring","Summer Soccer Fest")); 
    leagueList.add(new League("2004","Summer","Soccer League(Spring`03)")); 
    leagueList.add(new League("2004","Fall","Fall Soccer League")); 
} 

這是我的processRequest()方法

out.println("<ul>"); 
     Iterator items=leagueList.iterator(); 
     while(items.hasNext()){ 
      out.println("<li>"+League.getTitle()+"</li>"); 
     } 
     out.println("</ul>"); 

錯誤是:League.getTitle(); // void type not allowed

回答

1

該錯誤非常具有描述性。您正在返回void,換句話說,getTitle方法不會返回任何內容。 Java不能將void(Nothing)的結果連接到String

更改方法成爲一個適當的getter:

public String getTitle() { 
    return title; 
} 

此外,創建其他字段正確getter方法,以及:

//year field should be an int rather than a String 
public String getYear() { 
    return year; 
} 

public String getDetail() { 
    return detail; 
} 
+0

我遵循相同的,但現在它顯示出「非靜態方法不能從靜態上下文中引用」。當我聲明成員變量和成員函數爲靜態時,什麼也沒有發生。 – 2014-10-06 15:28:41

+0

@ mukeshvishwas你爲什麼要聲明這些字段或方法'靜態'?這不好。請提供您的確切代碼和您的想法。 – 2014-10-06 15:29:43

+0

我從這裏調用getter方法:out.println(「

  • 」+ League.getTitle()+「
  • 」);沒有靜電,它不允許我宣佈即。 League.getTitle();請參考上面的代碼 – 2014-10-06 15:37:19

    1

    getTitle()返回任何(void)和你試圖將其添加到字符串。

    使用此:

    public String getTitle() 
    { 
        return year + title + detail; 
    } 
    
    相關問題