有没有办法制作一个“指令”列表来调用?
List<???> methods = new ArrayList<???>();
for (int i = 0; i < methods.size(); i++) {
((???)methods.get(i)).do();
}
这基本上就是我遇到的问题 我想把
methods.add(graphics.setColor(Color.WHITE));
methods.add(graphics.drawRect(0, 0, 32, 32));
然后在循环中调用这些方法吗?
答案 0 :(得分:3)
您可以为通用功能创建接口:
interface GenericFunction
{
void do();
}
然后,对于要与其一起使用的每个函数,创建一个类:
class SetColor implements GenericFunction
{
private Color m_Color;
SetColor(Color c) { m_Color = c; }
void do()
{
graphics.setColor(m_Color);
}
}
然后创建这些函数类的实例并将它们放在数组列表中:
List<GenericFunction> methods= new List<GenericFunction>();
methods.add(new SetColor(Color.WHITE));
for (int i = 0; i < methods.size(); i++) {
methods.get(i).do();
}
答案 1 :(得分:2)
尝试:
List<Runnable> methods = new ArrayList<>();
methods.add(new Runnable() {
@Override
public final void run() {
graphics.setColor(Color.WHITE));
}
});
methods.add(new Runnable() {
@Override
public final void run() {
graphics.drawRect(0, 0, 32, 32));
}
});
for(Runnable method : methods)
method.run();