Вероятно, именно таким образом hibernate определяет, какие конструкторы доступны, а не прокладывает глубину кода гибернации, чтобы выяснить, почему, вы можете просто «двигаться дальше» и обходить его так:
public ReportField(Object... fields) {
if (fields.length == 2) {
init(fields[0], fields[1]);
return;
}
// current code
}
public ReportField(String memberName, String memberAddress) {
init(memberName, memberAddress);
}
private void init(String memberName, String memberAddress) {
// whatever you need to do here
}
Между прочим, параметр varargs никогда не равен null
(но это может быть массив нулевого размера) при обычном вызове, поэтому проверка нуля может не потребоваться.