【问题标题】:Generics and ArrayLists泛型和数组列表
【发布时间】:2023-03-06 19:23:01
【问题描述】:

我有这个ArrayList

ArrayList<Fruits> fruitList = Fruits.getNames();

我现在想打印出来,比如 arrayList 的索引 2 中的值。 我在我的方法中尝试了以下方法

public ArrayList<Fruits> getFruitList(){
    fruitList = fruitList.get(2);
    return fruitList;
}

不幸的是,我收到以下错误

incompatible types
required: ArrayList<Fruits>  
found: Fruits

这个方法在一个Struts2动作类中,我基本上是把fruitList发送到一个jsp页面。 以下工作没有问题,它返回整个数组列表

public ArrayList<Fruits> getFruitList(){
    return fruitList;
}

但是我想要的只是来自特定索引的值。希望有人可以提供帮助。谢谢。

【问题讨论】:

  • 你应该定义一个你想使用单个属性访问的类型。

标签: generics arraylist struts2


【解决方案1】:

由于fruitListArrayList&lt;Fruits&gt; 类型,fruitList.get(2) 的值将是Fruits 类型。您不能将其分配回fruidList,也不能从ArrayList&lt;Fruits&gt; 类型的方法中返回它。如果你想返回 fruitList 的单个元素,你可以简单地声明你的方法返回一个 Fruits 值,而不是一个 ArrayList&lt;Fruits&gt;。它还应该有一个不同的名称:

public Fruits getFruitAt(int index){
    return fruitList.get(index);
}

【讨论】:

  • 谢谢 Ted,不过我还是有问题。如何在 jsp 页面中看到输出?由于是jsp中的代码如下: 并且jsp页面中没有输出。
  • @Sor - 如果你想显示单个值,那么为什么属性值是"fruitList"?是要显示单个值还是要显示表示整个数组内容的可读字符串?
  • 要使用索引属性访问可以使用此方法,但 OGNL 知道如何在没有此方法的情况下通过索引获取列表元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多