私たちは、Javaクラス、WebCenterGridを持っています。このクラスは、このような行を見つけセルの値を見つけ、列の並べ替えなど、グリッドに物事を行うためのメソッドがいっぱいです。私たちは、このクラスを使用するいくつかのクラスを持っています。それを使用したクラスは、すべての異なるグリッドを参照しますが、機能は同じです。
異なる唯一のものは、グリッドを作成する方法です。いくつかのクラスは(もリフレッシュを検索)グリッドを移入検索を行います。一部にはなど、グリッドを更新するために)(updateListを行います
私は、グリッドをリフレッシュするためにWebCenterGridにメソッドを追加したいと思います。私は、各メソッドは別の名前を持って言ったように問題があります。
私は何とかWebCenterGridにリフレッシュを行うために呼び出すメソッドの名前を渡したいです。私はいくつかの検索を行って、私は本当に理解していなかったラムダについて何かを発見しました。
私はしばらくの間でC ++を使用していないが、これらのメソッドにメソッドを渡すためにいくつかの方法がありました。このクラスは、JavaではないC ++であるが、理解しやすいと同等のいくつかの並べ替えはありますか?
public class WebCenterGrid {
....
....
public void refresh(Method meth) {
meth();
}
}
基本的には、2つの方法があります。
一つは使用することです反射に頼っ:、この手段の実行時、一般的に、生の文字列から派生した型情報を、。言うような:私は、クラスXのいくつかのオブジェクトを持っている、と私は、そのオブジェクトの名前のメソッドを「doTheFoo()」を呼び出すしたいと思います。
参照してくださいここにすべての栄光の詳細については。
わずかに良い方法が使用することですMethodHandle代わりに「生」反射法クラスで、クラスを。参照してくださいここでのハンドルのために。
しかし、その後:リフレクションは、実行時に起こっています。あなたのコードは罰金をコンパイルしていますが、任意の詳細が間違っを取得する場合、それは実行時に吹きます。