投稿

ラベル(Java)が付いた投稿を表示しています

Javaにおいて引数付でスレッドを走らせる

C#なら色々引数を渡す手段を知っているのですがJavaでは引数を持てるAPIが見つかりませんでした。そこで調べてみたところ クラスのフィールドにセットしておけ とのことだったので頑張ってみましたが、うまく行くまで時間がかかってしまったのでブログに投稿しました。 [実行部(使い方)] 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); }

C♯erがJavaやってみてショック受けたこと

C♯erですがAndroid開発するためにJavaを本格的に始めました。その時ショック受けたことを上げます。 メソッドの頭文字が小文字 プロパティがない。get~(),set~()とか関数を使う 匿名関数がない。delegateがない。匿名クラスのメンバ関数として実現してる。 static関数なのにインスタンスメソッド形式で書けてしまう(コンパイルできる) オーバーライド許可してないのに派生クラスはオーバーライドできてしまう 投げる例外をいちいち宣言してやらないと例外がなげられない なげられるすべての例外は必ず処理しなければならない LINQがない。LINQ相当のものは外部によって作られてるものの3によりあまりスマートではない スコープがデフォルトでinternal状態 C#のconstに相当する機能がない。 String hoge = "boo" + "piyo";としても静的に結合してくれない そのほか いろいろ 。 ないものねだりですけど。JavaとC♯は仲良くなれそうもないです…。 でもAndroidのためならがんばちゃう!w やっぱりしーにゃーぷたんかわいい。