Я написал следующий код, но получаю ошибки, потому что это не правильный способ реализовать его в Scala. Я новичок в Scala, так что, если вы можете сказать мне, как именно я могу определить nextObj, чтобы потом его можно было инициализировать, это будет здорово.
trait myInterface[A]
{
}
class MyClass[A] extends myInterface[A]{
var myVal:A=_
var nextObj:MyClass[Any]=_
def mapNextObj[B](map_func:A=>B):myInterface[B]={
nextObj=new MyClass[B]()
nextObj.myVal=map_func(myVal)
nextObj
}
def cleanAllLinkedObjects():Unit={
nextObj.cleanAllLinkedObjects()
myVal=_
}
Я хочу иметь возможность инициализировать nextObj на картеСледующийObj fun c. Кроме того, мне нужно сохранить nextObj в качестве члена данных, потому что я хочу очистить все объекты в какой-то момент, пока у меня в основном только первый объект Obj.
Я использовал только пример, но я пытаюсь получить представление о том, как я могу сделать что-то подобное в Scala.
Проблемы, с которыми я сталкиваюсь:
Я не могу инициализировать nextObj в mapNextObj как МойКласс [B]. Получение: требуется MyClass [Any] Найдено: MyClass [B]
Та же ошибка, что и в 1, но в отношении кода возврата (требуется MyClass [B] найден MyClass [Any]