0

私はそのような2つのクラスを持っています:

public class A{
    ArrayList<Runnable> classBList = new ArrayList<Runnable>();
    int x = 0;

    public A(){
        //This code here is in a loop so it gets called a variable number of times
        classBList.add(new B());
        new Thread(classBList.get(classBList.size())).start();
    }
}

public class B implements Runnable{
    public B(){

    }

    public void run(){
        //Does some things here. blah blah blah...
        x++;
    }
}

問題は、クラス B のインスタンスで、クラス B を作成したクラス A の変数 x を変更する必要があることです。ただし、値を変更する必要があることをクラス B に知らせる方法がわかりません。できる。それを変更する方法についての提案は大歓迎です。ありがとうございました!

4

3 に答える 3

1

クラス B 内でクラス A を拡張する必要があります。つまり、次のようになります。

public class B extends A implements Runnable {
}

これにより、クラス B がクラス A のサブクラスとして設定され、その変数にアクセスできるようになります。

于 2013-02-18T09:06:32.610 に答える