【发布时间】:2015-04-28 21:50:35
【问题描述】:
我有一个 Object 类型的 ArrayList,其中包含 6 个不同类的对象:
questions = new ArrayList<>();
questions.add(new Question1());
questions.add(new Question2());
questions.add(new Question3());
questions.add(new Question4());
questions.add(new Question5());
根据 questionNum 变量,我必须从 ArrayList 中获取对象的方法,即 isAnswered()。
我想要的示例:
for (int i = 0; i < 5; i++)
{
questionNum = i;
if ((Question<questionNum>)questions.get(questionNum).isAnswered())
{
Log.d("Answered", String.valueOf(questionNum));
}
}
我现在使用的是什么:
else if (questionNum == 4 &&
((Question5)questions.get(questionNum)).isAnswered())
有什么办法让它更优雅,还是我应该使用接口或继承(做Android项目,所以每个问题类都已经继承了Fragment)?
【问题讨论】:
-
您不同的问题在功能上是否有所不同?
-
您应该使用接口并将功能委托给适当的类
标签: java android arraylist casting