Up until now we've used public constructors to create instances of our classes.
But there are other patterns for enabling class creation, and this problem explores one.
Specifically, we're going to show how to deserialize a CSV String
into instances of a custom class.
Create a class named Course
.
Course should not provide a public constructor, although you will probably want to create a private
one.
Instead, Course
should provide method named fromCSV
on a companion object
which takes a single String
argument and returns an array of Course
instances.
Each Course
maintains a department
and a number
, both String
s.
Here's how they are loaded from a CSV String
.
Given the following CSV contents:
CS, 125
IE, 333
MUS, 230
You should return an array containing three Course
instances: the first with
department="CS"
and number="125"
, the second with department="IE"
and number="333"
, etc.
Your array should contain the courses in the same order in which they appear in the CSV String
.
You should require
that the passed String
is not empty.
To complete this problem you'll want to review our previous work with CSV String
s, apply what you know about
companion objects, and determine how to create a private constructor. Have fun!
You're challenge is to write tests for this problem described above.