Я знаю, что вам не разрешено наследовать от case-классов, но как бы вы поступили, когда вам действительно нужно? ? У нас есть два класса в иерархии, оба содержат много полей, и нам нужно иметь возможность создавать экземпляры обоих. Вот мои варианты:
- Если бы я сделал суперкласс обычным классом, а не классом case, я бы потерял все достоинства класса case, такие как toString, equals, методы hashCode и т. д.
- Если я оставлю его как кейс-класс, я бы нарушил правило не наследоваться от кейс-классов.
- Если бы я использовал композицию в дочернем классе — мне пришлось бы написать множество методов и перенаправить их в другой класс — что означало бы много работы и не было бы похоже на Scalaish.
Что мне делать? Не является ли это довольно распространенной проблемой?
задан uzilan 18 May 2012 в 07:17
поделиться