我有一个通用列表,如下所示。
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>
答案 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";
}
}
}