public static String getSafeVariableName(String name, String... existingVariableNames) {
        return getSafeVariableName( name, Arrays.asList( existingVariableNames ) );
    }
@Test
    public void testGetSaveVariableNameWithArrayExistingVariables() {
        assertThat( Strings.getSafeVariableName( "int[]" ) ).isEqualTo( "intArray" );
        assertThat( Strings.getSafeVariableName( "Extends" ) ).isEqualTo( "extends1" );
        assertThat( Strings.getSafeVariableName( "class" ) ).isEqualTo( "class1" );
        assertThat( Strings.getSafeVariableName( "Class" ) ).isEqualTo( "class1" );
        assertThat( Strings.getSafeVariableName( "Case" ) ).isEqualTo( "case1" );
        assertThat( Strings.getSafeVariableName( "Synchronized" ) ).isEqualTo( "synchronized1" );
        assertThat( Strings.getSafeVariableName( "prop", "prop", "prop_" ) ).isEqualTo( "prop1" );
        assertThat( Strings.getSafeVariableName( "_Test" ) ).isEqualTo( "test" );
        assertThat( Strings.getSafeVariableName( "__Test" ) ).isEqualTo( "test" );
        assertThat( Strings.getSafeVariableName( "_0Test" ) ).isEqualTo( "test" );
        assertThat( Strings.getSafeVariableName( "_0123Test" ) ).isEqualTo( "test" );
        assertThat( Strings.getSafeVariableName( "bad/test" ) ).isEqualTo( "bad_test" );
    }