私はリフレクションによってメソッドを呼び出す方法を知っており、新しいインスタンスを作成します。しかし、私はそれをすることはできません。私のクラスはRunnableインターフェイスを実装したので、私は新しいスレッドでrunメソッドを起動しなければなりません。だからこれは望ましくない。 私のコードは次のとおりです。同じクラスに新しいインスタンスを作成せずにリフレクションで非静的メソッドを呼び出す方法は?
public class Validation() impelements Runnable {
Validation (String[] methodName) {
if(methodName[2].equals("deposit")){
this.deposit(account);
}
else if (methodName[2].equals("withdraw")){
this.withdraw(account);
}
// lots of if-else
}
//..... other methods , deposit() , withdraw() , run();
}
私はこのような何か必要があります(クラスの新しいインスタンスを作成せずにそれが反映する必要があります):
UPDATE:
置き換える必要がある場合は、他の
私は静的デポジットまたはwを使用できません静的変数を使用しています。私の質問がある
$methodName = $array[2] ;
$this.methodName();
:
同じで新しいインスタンスを作成せずに反射することによって、非静的メソッドを呼び出すためにどのように我々はこのようにsimethingいるPHPで
クラス?
。それは不可能だ。インスタンスメソッドを呼び出すには、インスタンスが必要です。 – Savior
あなたはそれをすることはできません。それについて考えてみましょう。オブジェクトなしでオブジェクトメソッド(その状態を変更できる)をどのように呼び出すことができますか? –
_existing_オブジェクトのリフレクションによってメソッドを呼び出す方法を尋ねていますか? –