Advantech
というドライバクラスがArrayList
の内部に格納されています。私はinitialize
私のクラスをインスタンス化します。 Advantech
クラスextends
Thread
およびAdvantech
クラスはrun()
メソッドを持っています。スレッドは、デバイスに接続するとクラス内で起動されます。 (this.start();
)ArrayListを使用してスレッドを拡張するクラスを格納する
thread
を起動して、そのクラスのインスタンスをArrayList
に保存できますか?
set(pos, class)
でクラスをインスタンス化して配列リストに戻す(前の位置を上書きする)場合は、class.isAlive()
を呼び出すとNullPointerException
が返されます。
これを行う方法はありますか?
私は、これは奇妙に聞こえるかもしれ知っているが、そうでない場合、私は8つのスレッドを開始するクラスを作成する必要があるため、私には、例えば、ArrayList
を使用しています:
Advantech adv1;
Advantech adv2;
Advantech adv3;
Advantech adv4;
すべての設定項目は同じです各インスタンス。
コード:Advantech.javaで
private ArrayList<Advantech> advantech = null;
private Advantech adv = null;
....
adv = new Advantech(/* parameters */);
adv.initialize();
advantech.set(0, adv);
:
public class Advantech extends Thread {
....
public void run() {
while(!done) { // do some work }
}
}
あなたに何をストーピングされるまで、リストの名前を変更したい場合がありますか?はい、可能です。 – Marcelo
@Marcelo:愚かな質問です。私はNullPointerExceptionを取得します。もう一度お読みください。だからこそ、私はそれを正しく行う方法を求めています。 –
いくつかのコードを投稿してください。これはうまくいくはずです。 – dlev