One of the most common ways to parameterize classes is by using values. This is quite simple, and it is achieved by passing different values for the constructor parameters of a class. In the following example, we can pass different values for the name
parameter of the Person
class, and this is how we create different instances:
case class Person(name: String)
This way we can create different instances and distinguish them, but this is neither interesting nor rocket science. Going further, we will focus on some more interesting parametrizations that will help us make our code better.
Generics are another way of parameterizing classes. They are useful when we write a functionality whose application is the same throughout various types, and we can simply defer choosing a concrete type until later. One example every developer should be familiar with is collection classes. List
, for example, can store any type of data, and we can have lists of integers, doubles, strings, custom...