静的ブロックでハッシュマップを初期化したクラスがあります。キーを渡して、クラスである値を取得しました。このクラスのオブジェクトを作成するため。コンストラクター クラスを使用してコンストラクターを取得し、引数を渡してオブジェクトを作成しました。
ハッシュマップに2つのクラスがあります。EchoExpression のオブジェクトを作成するには、2 つの引数を渡す必要があり、OutExpression クラスには 1 つの引数 (文字列) のみを渡す必要があります。
- キーによって返されたクラスに基づいて、取得して実装するコンストラクターを実行する必要があります。これは、引数が 1 つまたは 2 つのコンストラクターのどちらでもかまいません。 
- EchoExpression では、コンストラクターに 2 つの引数が含まれます。 
例えば:
JXPathExpression check = new JXPathExpression(String expression, Class<?> type)
String は String.class に属しますが、Class 型引数もどのクラスに属しますか? コンストラクターを取得する際に使用できるように
public class ExampleFactory {
    private static HashMap<String,Class<?>> hmap = new HashMap<String,Class<?>>();
    static
    {                   
        hmap.put("echo", EchoExpression.class);         
        hmap.put("Out", OutExpression.class);                       
    }
    public void getExpo(String key,String expression)
      {
        Class aClass =map.get(key);
//Constructor implementation for OutExpression where only one argument string is passed
        Constructor constructor = aClass.getConstructor(new Class[]{String.class});
        Object object= constructor.newInstance(expression);
//Need constructor for passing two arguments string and class<?> for EchoExpression
        return null;        
      }                
}