存在我使用这样的构造函数映射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));
如果有人通过添加参数修改构造函数,这个代码将会失败,但在运行时。有可能在编译时确保我们在这里需要的构造器是存在的吗?
你将不得不修改编译器的编译时分析,所以不,我不认为有办法。但是,您可以使用[工厂方法模式](https://en.wikipedia.org/wiki/Factory_method_pattern#Java),并通过定义一个接口并使工厂级别与相应的参数一起强化工厂方法的存在实现那个接口(但是这只能解决问题......如果有人改变了接口定义呢......)。 – Turing85
我不认为这是可能的。你可以尽快检查一下(在主类的静态块中)。 –
如果你使用AliasToBeanResultTransformer – MarianP