我正在使用如下构造函数将hibernate查询映射到对象:
Constructor<Product> contructor = Product.class.getConstructor(String.class, String.class, Integer.class, String.class, String.class, String.class,
String.class,String.class, String.class,Boolean.class);
criteria.setResultTransformer(new AliasToBeanConstructorResultTransformer(contructor));
如果有人通过添加参数来修改构造函数,则此代码将在运行时失败。可以在编译时确保我们需要的Contructor真的存在吗?
答案 0 :(得分:1)
这基本上是测试的目的。
例如:
@Test
public void constructorAvailableTest() {
try {
Constructor<Product> contructor = Product.class.getConstructor(String.class, String.class, Integer.class, String.class, String.class, String.class,
String.class,String.class, String.class,Boolean.class);
} catch( NoSuchMethodException nsme ) {
fail( "The specified " + Product.class.getName() + " constructor does not exist!");
}
}
更好的是,您可以将以反射方式构建Product的代码放在静态方法中,并在测试中调用它!