Javaでstart()の代わりにrun()メソッドを直接呼び出すことはできますか?
はい、できます。例を見てみましょう-
例
class my_thread extends Thread{ public void run(){ try{ System.out.println ("The thread " + Thread.currentThread().getId() + " is currently running"); } catch (Exception e){ System.out.println ("The exception has been caught"); } } } public class Main{ public static void main(String[] args){ int n = 6; for (int i=1; i<n; i++){ my_thread my_object = new my_thread(); my_object.run(); } } }
出力
The thread 1 is currently running The thread 1 is currently running The thread 1 is currently running The thread 1 is currently running The thread 1 is currently running
「my_thread」という名前のクラスは、実行中の現在のスレッドのIDを提供する「run」関数が定義されているメインスレッドを継承します。例外(存在する場合)をキャッチし、関連するエラーを表示するtryandcatchブロックが定義されています。 main関数では、「for」ループが実行され、「my_thread」クラスのnewobjectが作成されます。このオブジェクトで「実行」関数が呼び出されます。
-
JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?
invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド 。 SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る 。 invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。 構文 public static void in
-
Javaでfinalメソッドを継承できますか?
はい、finalメソッドは継承されますが、オーバーライドすることはできません。