私のメソッドは、Method
オブジェクトをパラメータとして受け取ります。したがって、私はjava.lang.reflect.Method
のモックアップインスタンスを作成する必要があります。クラスはfinal
であり、パブリックコンストラクタはありません。はい。だから...私は使うべき工場があるの? java.lang.reflect.ReflectAccess
クラスはパッケージスコープで、私が探しているファクトリのようです(ただし、使用することはできません)。ここに何があるの?...?java.lang.reflect.Methodをどのようにインスタンス化しますか?
ええ、私はいつもClass
のインスタンスを取得し、ランダムMethod
を選ぶことができますが、はるかに賢明な方法があると思います...?
ありがとうございます!
実際に 'Method'のインスタンスを取得する方法がない場合、いくつかのテストメソッドでダミークラスをモックアップすることができますが、これは私が気にしていたものではありません。 – carlspring
@ carlspring:あなたが念頭に置いたことは何ですか? 'Method.getDeclaringClass'はあなたが気にしていたことを何とか返すでしょうか? *そのメソッドを宣言しなかったクラス?実際の方法を使うよりも、どうすればいいのですか? –
これは実際に役に立つ有用なケースがあると思います。たとえば、MethodExpressionを使用するコードとメソッドが必要なAPIをブリッジする場合などです。その場合、MethodExpressionの型情報に基づいてMethodインスタンスを動的に作成する必要があります。 Oracle JDKでMethodのソースを見ると、これは最終的な修飾子ではない場合はかなり簡単です。 –