Мой вопрос ниже - это, безусловно, глупость, но ответ на него поможет мне в еще одной проблеме. Как заставить символ перемещаться только определенным классом (или его подклассом). Я думал об использовании требуют() внутри него:Рассмотрите признак как подкласс другого класса
abstract class Aclass(c_attribut1 : Int){
var attribut1 : Int = c_attribut1
def getAttribut1() : Int = this.attribut1
}
class Bclass extends Aclass(1) with Trait1{
}
class Cclass extends Aclass(2) with Trait1{
}
trait Trait1{
require(this.isInstanceOf[Aclass]);
def f() : Int = this.getAttribut1() * 2 // it obviously does not work
}
Тогда, я не знаю, как considere Trait1 как Aclass (для того, чтобы избежать asInstanceOf где каждый). Я знаю, что функция f должна быть в Aclass, но, как я уже сказал, мне хотелось бы знать, как правильно заставить признак быть смешанным с определенным классом и как получать сообщения этого класса в признаке.
Интересно, это потому, что мне нужен черта перемешиваются определенным классом с шаблоном:
trait TraitBuiltHost extends Observable{
require(this.isInstanceOf[BuiltInfrastructure[_ <: TraitHostDefinition]]);
.
.
.
}
Спасибо.
избил меня :) – Thayne