Type Bounds in Scala PRO

When we define a function or a class and we choose to use generics we can set limits on the unknown type:
S <: T – means that S is a sub type of T S >: T – means that S is a super type of T
It is also possible to mix between a lower bound and an upper one:
S >: T1 <:T2 – S must be a super type for T1 and a sub type for T2.
The following code sample shows an example for setting limits, both an upper one and a lower one, on the unknown type.

object HelloSample
{
  def main(args:Array[String]):Unit =
  {
    val ob = getMyStack[SportCar](10)
  }
  def getMyStack[T >: RacingCar <: Car](num:Int) =
  {
    new MyStack[T](num)
  }
}

class MyStack[T](size:Int)
{
  //...
}

class Car

class SportCar extends Car

class RacingCar extends SportCar

The following video clip shows the execution of this code sample, overviews it and provides more in-depth understanding for this topic.

Share:

banner for the css playlist in hebrew life michael courses for programmers

The First Steps in CSS

Learn CSS using our our videos (in Hebrew) on the CSS (he) playlist on youtube. Do it now. Do it for free.

Good Trainers Collaborate with Others

It is always essential to keep an open mind and learn from others. This applies to everyone, including teachers and especially software development trainers. Software

The Beauty of Code

Coding is Art! Developing Code That Works is Simple. Develop Code with Style is a Challenge!

Update cookies preferences