我有一个可破坏的接口,如下所示
public interface Damageable {
public void handleCollision(float impulse);
}
Run Code Online (Sandbox Code Playgroud)
一个实现此接口的类BaseObject
public class BaseObject implements Damageable
Run Code Online (Sandbox Code Playgroud)
现在在第三个类中,我有一个BaseObject类型的ArrayList
public class ObjectManager {
public ArrayList<BaseObject> bodies;
Run Code Online (Sandbox Code Playgroud)
我想要做的是将ArrayList主体传递给另一个接受ArrayList的类的方法
public CollisionManager( ArrayList<Damageable> _bodies) {
bodies = _bodies;
}
Run Code Online (Sandbox Code Playgroud)
Java不允许我做新的CollisionManager(主体),其中的主体是ArrayList类型,而BaseObject实现了Damageable
我试过铸造.说无法转换
ArrayList<BaseObject>
为ArrayList也尝试使用Class<? extends Damageable>
但后来我无法调用接口Damageable中声明的方法.我怎样才能传递ArrayList?
我正在寻找一种有效的算法,让我可以在分布式架构上使用alpha-beta修剪处理国际象棋的极小极大搜索树.我发现的算法(PVS,YBWC,DTS)都很老(1990年是最新的).我认为从那时起已经取得了许多重大进展.该领域目前的标准是什么?
另请指出一个白痴对DTS的解释,因为我从我读过的研究论文中无法理解.
我有一个给定长度的c ++ bitset.我想生成这个bitset的所有可能组合,我想添加1 2 ^ bitset.length次.这该怎么做?Boost库解决方案也是可以接受的
我应该实现一个基于手势的菜单,您可以通过平移或扔过它们来滚动浏览项目的水平列表.这种菜单在智能手机游戏中很常见.示例案例将是Cut the Rope,您可以在其中选择框(Cardboard box,Fabric box)或Angry Birds,您可以在其中选择一组级别(Poached Eggs,Mighty Hoax).
我在想的是,我将不得不做一些复杂的物理计算,并根据手势给出菜单项的速度和加速度.更好的解决方案?我正在使用libgdx btw.
我实际上要做的是使用彩色TextView填充我的ListView.我想我必须创建一个自定义ArrayAdapter.适配器将获取我的类ColorElement的一组对象.这是适配器的代码
public class ColoredAdapter extends ArrayAdapter<ColorElement> {
private final Context context;
private final ArrayList<ColorElement> values;
public ColoredAdapter(Context context, ArrayList<ColorElement> values) {
super(context, R.layout.simple_list_item_1);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = (TextView) view.findViewById(R.id.text1);
textView.setText( ((ColorElement)values.get(position)).getName());
textView.setTextColor(((ColorElement)values.get(position)).getClr());
return view;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在创建对象数组和设置适配器的代码
ArrayList<ColorElement> values = new ArrayList<ColorElement>();
for(int i = 0; i < answerCount; ++i) {
int num = randNumber.nextInt(colorList.size() - 1);
values.add( …
Run Code Online (Sandbox Code Playgroud)