2012-05-03 14 views
43

私が作成したクラスのメソッドにアクセスしようとしていますが、名前と引数の数が似ているので、メソッドには曖昧です。私はこの方法で呼び出さJavaで同じ名前の2つのメソッドを選択する方法

methodName(X, Y, Z) 
methodName(A, Y, Z) 

、そして私のテストの目的のための最初の引数の値nullに渡された:ここでは2つの方法がどのように見えるかのモックアップです。残念ながら、メソッドの名前を変更したり、引数の順序を変更したり、メソッドの構造を変更したりすることはできません。これら2つの方法を区別する方法はありますか?

+37

誰がそのAPIを設計し、彼らが住んでいる場所を学び、彼らの家を燃やしてください。 – alexg

+1

@alexg前に打つことを覚えているようですが、どのAPIが忘れています。たとえば、新しいThread(null、 "name")とすることはまずありません。 – Neil

+7

@alexg「私が作成したクラスのメソッドにアクセスしようとしています」という質問から、user1373493は自分の家を焼くか、APIを再設計する可能性があります。 – emory

答えて

91

は、たとえば、あなたが呼び出したいメソッドの最初のパラメータの型に最初の引数をキャスト:

methodName((A) null, y, z); 
+0

ありがとうございました。 – tamuren

0

あなたはメソッドリストを取得するオブジェクトにリフレクションを使用することはできますか?そうであれば、あなたに関連するメソッドを明示的に呼び出すことができます。私は信じてfivedigitの答えはおそらくもっと良いです...

関連する問題