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:

The Visitor Design Pattern

The Visitor Design Pattern

The visitor design pattern allows us to add operations to objects that already exist without modifying their classes and without extending them.

What are Anti Patterns?

Anti Patterns

Unlike design patterns, anti patterns just seem to be a solution. However, they are not a solution and they cause additional costs.

Virtual Threads in Java Professional Seminar

Virtual Threads in Java

The use of virtual threads can assist us with improving the performance of our code. Learn how to use virtual threads effectively.

The Beauty of Code

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

Update cookies preferences