我有一個類,其中我已經初始化靜態塊hashmap。通過鑰匙,我已經重新認識了這門課的價值。爲了創建這個類的對象。我使用構造函數類來獲取構造函數並傳遞參數和創建的對象。條件來選擇哪個getConstructor方法
我在hashmap中有兩個類。爲了創建EchoExpression對象,我需要傳遞兩個參數,對於OutExpression類,我只需要傳遞一個參數(String)。
問:
根據由我需要執行獲得其構造和實施的關鍵返回的類,是否有一個參數或兩個參數的構造。
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);
//constructor for passing two arguments string for EchoExpression
Constructor constructor = aClass.getConstructor(new Class[]{String.class,Class.class});
Object object= constructor.newInstance(expression, Boolean.class);
return null;
}
}
如何從值(類)中選擇哪個類實現而不使用if else?
這是什麼語言? – EdChum 2012-04-04 22:43:12