Я новичок в генераторах scala, я прочитал несколько статей о представлениях, привязаны к границам/контексту. Когда я пытался реализовать свой класс, я был очень смущен.Scala Generics - T имеет ограничения метода
Мой вопрос, допустим, у меня есть класс шаблонов MyClass [T] {}. Я хочу, чтобы T должны иметь некоторые методы, например:
def func1(t:T):T
def func2(t:T):Boolean
def func3(t:T):Unit
Примечание: классы, которые будут использовать MyClass не T поэтому я не могу использовать: < или:>
Я прочитал о Ordered and Ordering, которые имеют неявную функцию, но я до сих пор не могу понять, как ее реализовать.
Спасибо за хелперов
Кстати, вам может быть интересно посмотреть на [структурные типы] (http://daily-scala.blogspot.ru/2010/02/introducing-structural-types.html). Не сказать, что это решит проблему выше, но может дать вам другой способ ее архивирования. –
У Scala нет «классов шаблонов» в смысле C++. Он имеет общие классы в смысле Java/JVM. В частности (и игнорируя специализацию) он использует стирание типа для создания единого класса .class для универсального класса. Этот единственный класс JVM служит для _all_ экземпляров родового класса. –
... и это [разница между * reified generics * (те, что указаны в .NET) и нереализованным (JVM)] (https://en.wikipedia.org/w/index.php?title=Comparison_of_C_Sharp_and_Java&oldid = 503563938 # Type_erasure_versus_reified_generics). –