小编wir*_*ate的帖子

Java - 传递接口类型的ArrayList

我有一个可破坏的接口,如下所示

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?

java interface arraylist

16
推荐指数
1
解决办法
2万
查看次数

分布式alpha beta修剪

我正在寻找一种有效的算法,让我可以在分布式架构上使用alpha-beta修剪处理国际象棋的极小极大搜索树.我发现的算法(PVS,YBWC,DTS)都很老(1990年是最新的).我认为从那时起已经取得了许多重大进展.该领域目前的标准是什么?

另请指出一个白痴对DTS的解释,因为我从我读过的研究论文中无法理解.

tree search

5
推荐指数
0
解决办法
208
查看次数

将1添加到c ++ bitset

我有一个给定长度的c ++ bitset.我想生成这个bitset的所有可能组合,我想添加1 2 ^ bitset.length次.这该怎么做?Boost库解决方案也是可以接受的

c++ boost bitset

2
推荐指数
1
解决办法
2448
查看次数

如何实现基于手势的菜单

我应该实现一个基于手势的菜单,您可以通过平移或扔过它们来滚动浏览项目的水平列表.这种菜单在智能手机游戏中很常见.示例案例将是Cut the Rope,您可以在其中选择框(Cardboard box,Fabric box)或Angry Birds,您可以在其中选择一组级别(Poached Eggs,Mighty Hoax).

我在想的是,我将不得不做一些复杂的物理计算,并根据手势给出菜单项的速度和加速度.更好的解决方案?我正在使用libgdx btw.

menu

2
推荐指数
1
解决办法
907
查看次数

用于android listview的自定义数组适配器

我实际上要做的是使用彩色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)

android listview android-arrayadapter

1
推荐指数
1
解决办法
5188
查看次数