У меня было много тестовых сценариев, работающих на классе MyClass, используя конструктор по умолчанию: MyClass ().
Теперь требования MyClass изменились, и пользователь может предоставить HashMap для указания некоторых пар. Теперь MyClass должен иметь хотя бы одну пару и генерировать исключения, если один из них равен нулю.
Я надеялся создать еще один конструктор по умолчанию, чтобы избежать необходимости переписывать все методы тестирования, например:
public MyClass() {
HashMap<KeyClass, ValueClass> hashMap = HashMap<KeyClass, ValueClass>();
hashMap.put(KeyClass.someValue, new ValueClass());
this(hashMap);
}
Теперь это не работает, потому что сначала мне нужно вызвать другой конструктор, поэтому я подумал о написании какого-то метода
private static HashMap<KeyClass, ValueClass> getDefaultHashmap();
и использовать его для вызова другого конструктора следующим образом:
public MyClass() {
this(MyClass.getDefaultHashmap());
}
Но мне показалось, что это не очень хороший стиль, поэтому я надеялся, что вы скажете мне, каков правильный способ сделать что-то подобное!