It's a shame that you can't subclass String. This was by design, just so nobody would try to extend it.
But that was extremely short sighted: Subclassing String, even just to give it a new name would allow us to have wonderful classes for validation:
Class PhoneNumber extends String;
Class Address extends String;
And so on. String dependent methods would work normally, and business logic would do its magic.
But nooo, make String final. 🙄