引数の量は何であるかを事前に知らなくてもメソッドを呼び出す必要があります。
私の引数を含むオブジェクトの配列を2番目のパラメータとして渡すと、実際には動作しませんでしたが、Method.invoke(Object、Object ...)というメンバを使ってみました。
私は後に何をする方法がありますか?引数で複数の引数を受け入れるInvokeメソッド
答えて
これを行う方法は正しい方法です。ただし、引数配列には、ターゲットメソッドと同じ数の引数を指定する必要があります。それらは正しい順序でリストされ、適切なタイプを持たなければなりません。あなたが取得している例外スタックトレースとコードサンプルを投稿できますか?
私は間違った議論をしてコールしましたが、それはすべてが失敗する原因となりましたが、コールに戻ることは困難でした。 ありがとう:) – em70
Method
オブジェクトを取得したら、getParameterTypes()を使用してこれを判断できます。 JavaDocから:
このMethodオブジェクトによって表されるメソッド の宣言順に仮パラメータの型、 を表すClassオブジェクトの配列を返します。 の基本メソッドにパラメータがない場合は、長さ0の配列を返します。
Varargsが方法です。 チェックdocs:
メソッドに渡されますどのように多くの引数の特定の種類の分からないときは、可変引数を使用します。これは、配列を手動で作成するための簡単な方法です。
varargsを使用するには、最後のパラメータのタイプに省略記号(3つのドット、...)、スペース、およびパラメータ名を続けます。このメソッドは、noneを含む任意の数のそのパラメータで呼び出すことができます。
public Polygon polygonFrom(Point... corners) {
int numberOfSides = corners.length;
double squareOfSide1, lengthOfSide1;
squareOfSide1 = (corners[1].x - corners[0].x)*(corners[1].x - corners[0].x)
+ (corners[1].y - corners[0].y)*(corners[1].y - corners[0].y) ;
lengthOfSide1 = Math.sqrt(squareOfSide1);
// more method body code follows that creates
// and returns a polygon connecting the Points
}
PS。 VarargsはJava 1.5以降で使用できます。
上記の方法に配列を渡すことさえできます: ポイント[] p = {新しいポイント(1,2)、新しいポイント(3,4)、新しいポイント(5,6)}; ploygonFrom(p); – Thushan
- 1. Python:複数の引数を受け入れる
- 2. いくつかの引数を受け入れるPOSTメソッド
- 3. Pythonのマジックメソッドの追加で複数の引数を受け入れる方法
- 4. ロガーの引数の可変数を受け入れる
- 5. 引数を受け入れる関数のデコレータ内のクラス
- 6. は、任意の数の引数を受け入れること、
- 7. 関数への引数の戻り値を受け入れる
- 8. 複数の引数を受け付けるBashスクリプト
- 9. VB.NET Invoke DLLメソッドby ByRef引数
- 10. PuTTYコマンドラインは複数のファイル引数を受け入れますか?
- 11. カスタムロギングマクロが複数の引数を受け付けない
- 12. メソッド呼び出し後に複数の引数を受け取るdbus-cxx
- 13. Ruby/Inline Cで未定義の引数を受け入れる
- 14. groupby.applyメソッド複数の引数を取る
- 15. Cocoaで引数を受け入れてシステムコマンドを実行する
- 16. オーバーロードされた__getitem__別の引数を受け入れる
- 17. linq式の引数を受け入れるメソッドを呼び出す方法
- 18. JDK9で--add-modulesのjvm引数を受け入れません
- 19. Boost Python関数の文字列引数またはNone引数の両方を受け入れる方法
- 20. 複数のコマンドライン引数を1つの変数に受け入れることができません
- 21. 別のテンプレート引数を受け入れるテンプレートテンプレートコレクション
- 22. VB2010引数としてサブへのポインタを受け入れる
- 23. 複数のスレッドへの引数の受け渡し
- 24. JSON引数を持つMethodInfo Invoke()JSON引数を持つ
- 25. Javaで任意の数の引数を受け入れるメソッドを作る方法は?
- 26. Typescript関数が無効な引数をエラーなしで受け入れる
- 27. TypeScriptジェネリックコールバックの最後の引数を持つ関数を受け入れる
- 28. strncmp()がunsigned char *を引数として受け入れる
- 29. perl GetOptions、引数を受け入れるオプショントリガーサブルーチン
- 30. JQueryがイベントオブジェクトの引数を受け入れる関数に値を渡す
Varargsではこれを行うことができますが、メソッドの宣言を変更する必要があります。 http://softwareas.com/reflecting-on-varargs – seth