私はJavaクラスを持っています
SomeClass implements Runnable
メソッドdisplay()があります。
このクラスのスレッドを作成すると
Thread thread1 = new Thread(new SomeClass());
スレッド インスタンスを使用して display() メソッドを呼び出す方法を教えてください。
私はJavaクラスを持っています
SomeClass implements Runnable
メソッドdisplay()があります。
このクラスのスレッドを作成すると
Thread thread1 = new Thread(new SomeClass());
スレッド インスタンスを使用して display() メソッドを呼び出す方法を教えてください。
を呼び出すことstart()
になりthread1
ます。
SomeClass
run()
メソッドを呼び出す必要があるメソッドをオーバーライドしますdisplay()
。
このように を呼び出すとstart()
、オブジェクトの run メソッドSomeClass()
が呼び出され、display() メソッドが実行されます。
例:
public class SomeClass implements Runnable {
private List yourArrayList;
public void run() {
display();
}
public void display() {
//Your display method implementation.
}
public List methodToGetArrayList()
{
return yourArrayList;
}
}
アップデート:
SomeClass sc = new SomeClass()
Thread thread1 = new Thread(sc);
thread1.join();
sc.methodToGetArrayList();
注: 例は概念を説明するためのものであり、構文エラーがある場合があります。
アンドリューがコメントしたように、join() を使用しないと、結果に矛盾が生じる可能性があります。
新しいスレッドから表示を呼び出したい場合は、実行メソッド内にある必要があります。
呼び出し元のスレッドから呼び出したい場合は、新しいオブジェクトを作成し、これを新しいスレッドに渡してから、立ち下がりスレッドから表示を呼び出します
SomeClass sc = new SomeClass();
new Thread(sc).start();
sc.display()
単純な委任:
public class SomeClass implements Runnable {
@Override
public void run() {
display();
}
public void display() {
//...
}
}