我有一个HashMap,它使用类作为键和值,将类(键)链接到另一个类,该类将键类的实例作为其构造函数的唯一参数。
我的代码如下所示:
HashMap<Class<?>, Class<?>> links = //Instantiation
//Adding some things to the map
Object object = //The instance I'll use to build some other thing
Class<?> ValueClass = this.links.get(object.getClass());
try {
return new ValueClass(object);
} catch (NullPointerException e) { //Not in the HashMap
//Some exception handling
}
我对Java和良好的编码习惯知之甚少,所以除了想要知道如何正确地做到这一点之外,我想知道这样做是否有任何重要的意义,如果有的话,&#39;这是一种更好的方式。
提前致谢!
答案 0 :(得分:1)
这应该根据你的描述创建对象
Constructor<?> constr = ValueClass.getConstructor( object.getClass() );
Object newObj = constr.newInstance(object);
这可以引发各种异常 - 请参阅javadoc。