如何从java </t>中的通用列表List <t>中读取数据

时间:2014-05-23 07:09:29

标签: java android collections arraylist

我有一个通用列表,如下所示。

protected List<T> mItems;

 public ArrayAdapter(final List<T> objects, final boolean copyList) {
        if (objects != null) {
            if (copyList) {
                mItems = new ArrayList<T>(objects);
            } else {
                mItems = objects;
            }
        } else {
            mItems = new ArrayList<T>();
        }
 }

我希望在mItems的特定位置获取整数值。其中mItems包含模型类的对象。

- 编辑 -

我无法访问模型类,这就是List<T>的原因,否则我可以使用List<MyModelClass>

3 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但是:

public packagename.MyClass getItemAtPosition(int position)
{
  Object item = mItems.get(position);
  if(item instanceof packagename.MyClass)
  {
    return (packagename.MyClass)item;
  }
  return null;
}

有了这个,您将可以访问MyClass的所有方法,并且可以从中提取Integer。

由于您没有MyClass的访问权限(因为什么原因),您可以使用reflexion从item获取整数。快速搜索应该让您开始反思。

答案 1 :(得分:0)

您应该使用已声明方法(提取数据)的接口而不是通用列表。

答案 2 :(得分:0)

你应该使用

protected List<T extends YourClass> mItems;

之后你会看到YourClass的方法

这是代码示例,您可以如何使用泛型类:

public class GenericClass <T extends GenericClass.MyClass>{
    T object;

public GenericClass(T object) {
    this.object = object;
}

public void doSomething(){
    System.out.println(object.helloWorld());
}

public static class MyClass{
    public String helloWorld(){
        return "Hello world";  
    }
}
}