Я отображение запроса спящего режима на объект с помощью конструктора, как это:Проверьте конструктор существует во время компиляции
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) и укрепить наличие фабричного метода с соответствующими параметрами, указав интерфейс и разрешив класс Factory реализовать этот интерфейс (но это только перемещает проблему ... что, если кто-то изменяет определение интерфейса? ...). – Turing85
Я не думаю, что это возможно. Вы можете просто проверить как можно скорее (в статическом блоке в основном классе). –
это может помочь, если вы использовали AliasToBeanResultTransformer – MarianP