I'm building a "SmartList" the details of what make it smart are not all that important, but as with other List/Map/Set code, it should use generics.
Inside the implementation, I need to find the type that was used, so I can call functions of the classes that implement the type.
I can't find a clean way to do this, other than passing the class in as an explicit argument to the constructor, and saving it.
To my eyes, this is ugly, as there are three copies of the word "Phone" in line 
and one of these days, someone will change it in two places and leave one wrong.