★★Java質問・相談スレッド182★★
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 http://pc11.2ch.net/hp/ Webプログラミング http://pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 (p)ttp://www.wikiroom.com/java/?path,classpath ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 ・String に == は使うな。equals() を使え。※ 質問時の心得 ・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。 ・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。 前スレ ★★Java質問・相談スレッド181★★ https://mevius.5ch.net/test/read.cgi/tech/1518252580/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured メソッドの処理時間を返すメソッドを作りたいと思ってるのですが実装方法がよく分かりません… 関数型プログラミングをつかえとネット上で書いてあったのですが中々理解出来ずにいます… やりたいこと: int runProcessTime(メソッド){ long start = System.currentTimeMillis(); // 引数のメソッドを実行 long end = System.currentTimeMillis(); return (int)end - start } どなたかこのポンコツめに実装方法を教えてください……よろしくお願いします… 試してないけどこんな感じかな int runProcessTime(Runnable proc){ long start = System.currentTimeMillis(); proc.run(); long end = System.currentTimeMillis(); return (int)end - start } // 呼び出し runProcessTime(() -> {you.doSomething();}); 例外投げんなと怒られたらCallable版も用意してreturn false Effectively finalで怒られたら引数の宣言にfinalでもつけて修正 ジェネリックな高階関数定義するのひたすら面倒だね。戻り値の有無や引数の数が一般化出来ないケースは実質使えない https://paiza.io/projects/Eh3ihZ2kTIdiBv-2ItS5wg?language=java 本番環境でも使いたければAOP使ってログ出力かな >>658-660 ありがとうございます 参考にしてもらって調べてみましたが、プロファイラやAOPを使ったログ出力をすればたしかに解決出来そうです! ただそろそろラムダ式とちゃんと向き合わなきゃ駄目かなと思っているので>>660 のコードを参考に読み解いてこうと思います! >>659 のコードにはとりあえずrunnable実装したクラス投げてみたんですがどうも上手くいかなかったです… これもラムダ式が理解出来てれは動作するんでしょうか…? もしかしてdoSomethingメソッドの戻り値をRunnable型のオブジェクトにしちゃった…? runProcessTime(() -> {System.out.println("呼ばれた");}); でいいんだよ 引数と戻り値のないラムダ式がRunnableとして型推論される >>662 とりあえず動作確認がしたくて試行錯誤した結果こんな感じなら通るのかなぁって思ってました https://wandbox.org/permlink/hflsLOytE8IIIZkt ご指摘の通りに書いてみたら上手く動作してくれました!ありがとうございます! https://wandbox.org/permlink/jl8r7LPtWxuNBPkh 型推論…便利だけど仕様理解してないとなんか不思議な感覚ですね ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる