2 つのクラスがA
ありB
、1 つの引数のコンストラクターと 2 項関数f
がある場合、次の形式の文字列を解析する必要があります。
"f(A(10), B(20))"
"f(A(2), A(3))"
適切なインスタンスを作成し、それぞれの関数を呼び出します。
class Functions {
public static double f(A a1, A a2);
public static double f(A a, B b);
public static double f(B b1, B b2);
// ...
}
だから私が探しているのは、そのような方法です
T createInstanceFromString(String desc);
「A(10)」や「B(20)」などの文字列からインスタンスを作成します。もちろん、残念なことに、これは Java では不可能です。
この問題の解決策に関するアドバイスは大歓迎です。
編集:潜在的に多数の異なるクラス、、、などと多数の関数、などがあることに言及するのを忘れていましたA
。B
解析C
とf
呼び出しを分離するg
ために使用したいと思います。そうでない場合は、条件付きで個別に解析する必要がありますcreateInstanceFromString
関数呼び出しごとに、多くのコードの重複が発生します。
Edit2 :問題は解析方法ではなく、汎用メソッド/ファクトリ/その他でインスタンスを解析して返す方法についてです。