¿Cómo convierto CamelCase en nombres legibles por humanos en Java?

Me gustaría escribir un método que convierta CamelCase en un nombre legible para humanos. Aquí está el caso de prueba: public void testSplitCamelCase() { assertEquals("lowercase", splitCamelCase("lowercase")); assertEquals("Class", splitCamelCase("Class")); assertEquals("My Class",...