【发布时间】:2012-04-04 21:30:41
【问题描述】:
我有一个类,其中我在静态块中初始化了 hashmap。通过密钥,我检索了一个类的值。为了为这个类创建对象。我已经使用构造函数类来获取构造函数并传递参数和创建的对象。
我在 hashmap 中有两个类。要为 EchoExpression 创建对象,我需要传递两个参数,而对于 OutExpression 类,我只需要传递一个参数(字符串)。
根据key返回的类,我需要执行获取和实现哪个构造函数,是一个参数还是两个参数的构造函数。
在 EchoExpression 中,构造函数包含两个参数。
例如:
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;
}
}
【问题讨论】:
标签: java constructor hashmap