Let's get some practice implementing a known interface.
Create a public class named MyString
.
MyString
should provide a public constructor that accepts a single String
argument.
You should reject null
String
s in your constructor using assert
.
MyString
should also implement the Java Comparable
interface, returning 1 for a positive result and -1 for a
negative result.
Normally String
s are compared lexicographically: "aaa" comes before "z".
MyString
should compare instances based on the length of its stored String
.
So MyString("aaa")
should come after MyString("z")
, since "aaa" is longer than "z".
You will probably need to review the documentation for Comparable
.
Note that compareTo
accepts an Object
as an argument, but you can reject non-MyString
arguments using assert
.
You're challenge is to write tests for this problem described above.
Stuck? You may find these lessons helpful: