【问题标题】:cannot get attribute from List<Object> - Servlet无法从 List<Object> 获取属性 - Servlet
【发布时间】:2015-11-12 13:22:58
【问题描述】:

Class1 中,我们有一个方法 doGet 和一个返回 List 的方法,该 List 中的对象类型为 Animal。

public List<Animal> getAnimals() 

所以我称之为方法:

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

Class 2中,我也有一个方法doGet,我想采用animal_list。我的代码是:

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

但是当我编译时我得到了消息

"Object cannot be converted to List<Animal>"

【问题讨论】:

  • 你需要转换getAttribute函数的返回类型,List&lt;Animal&gt; list500 = (ArrayList&lt;Animal&gt;)request.getAttribute("animal_list");
  • 我试过这个,但是当我编译时收到消息“文件使用未经检查或不安全的操作。工具已成功完成”

标签: java servlets get attributes


【解决方案1】:

这里需要从ObjectList&lt;Animal&gt; 的演员表:

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

request.getAttribute 只返回Object,因此您必须通过cast 定义确切的类型。 Object 可能就是一切......

作为一个侧节点:你会得到一个

“从对象到 ArrayList 的未经检查的强制转换”

来自compiler 的警告。在这种情况下,您可以添加

“抑制警告”

annotation。之后警告将消失。

【讨论】:

  • 我试过这个,但是当我编译时收到消息“文件使用未经检查或不安全的操作。工具已成功完成”
  • 我写了 List list500= (ArrayList)request.getAttribute("animal_list"); ,但消息是“文件使用未经检查或不安全的操作。工具已成功完成
猜你喜欢
  • 1970-01-01
  • 2016-07-14
  • 2022-12-07
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多