Javaにおいて引数付でスレッドを走らせる
C#なら色々引数を渡す手段を知っているのですがJavaでは引数を持てるAPIが見つかりませんでした。そこで調べてみたところクラスのフィールドにセットしておけとのことだったので頑張ってみましたが、うまく行くまで時間がかかってしまったのでブログに投稿しました。
[実行部(使い方)]
[パラメータを受け取るRunbaleの実装クラス]
[引数をひとつ受け取って実行するインターフェス]
[実行部(使い方)]
new Thread(new ParameterizedRunner<Integer>( new Runnable1<Integer>() { @Override public void run(Integer ags) { try { Thread.sleep(ags); } catch (InterruptedException e) {} } }, 1234)).run();
[パラメータを受け取るRunbaleの実装クラス]
private class ParameterizedRunner<TArg> implements Runnable{ private Runnable1<TArg> task; private TArg arg; public ParameterizedTRunner(Runnable1<TArg> task,TArg arg){ this.task =task; this.arg = arg; } @Override public void run() { task.run(arg); } }
[引数をひとつ受け取って実行するインターフェス]
public interface Runnable1<TAgs> { void run(TAgs ags); }
コメント
コメントを投稿