2015-11-12 53 views
4

Class1我們有一個方法doGet和一個方法,它返回一個List類型爲Animal的對象。無法從列表中獲取屬性<Object> - Servlet

public List<Animal> getAnimals() 

所以我打電話方法,如:

List<Animal> animal = getAnimals(); 
request.setAttribute("animal_list", animal); 

2級我有一個方法的doGet過了,我想借此animal_list。我的代碼是:

List<Animal> list500=request.getAttribute("animal_list"); 

但我編譯時得到的消息

"Object cannot be converted to List<Animal>" 
+2

你需要轉換的'getAttribute'函數的返回類型,'名單 list500 =(ArrayList的)request.getAttribute(「animal_list」);' –

+0

我想這一個,但我編譯時得到的消息「該文件是使用未經檢查或不安全的操作。工具成功完成「 – nancy

回答

3

Object強制轉換爲List<Animal>必要在這裏:

@SuppressWarnings("unchecked") 
List<Animal> list500= (ArrayList<Animal>)request.getAttribute("animal_list"); 

request.getAttribute回報只是Object讓你擁有通過cast定義確切類型。 Object是一切......

爲側節點:你會得到一個

「從對象未選中投地ArrayList的」

compiler警告。在這種情況下,您可以添加

「禁止警告」

annotation。之後,警告將消失。

+0

我試過這一個,但是當我編譯時,我得到消息」該文件使用未經檢查或不安全的操作,工具成功完成「 – nancy

+0

這是一個警告。看到我編輯的答案。 –

+0

我寫了List list500 =(ArrayList )request.getAttribute(「animal_list」); ,但消息是「文件使用未經檢查或不安全的操作。工具已成功完成 – nancy