Неоднозначность с оператором [] и множественным наследованием [дубликаты]

Некоторые общие предложения «хорошего кодирования»:

  • Названия классов должны представлять «вещь», обычно имя класса является существительным (например, «StringTool»)
  • Методы должен представлять собой действие, обычно методname является глаголом (например, «reverse»)
  • Имена параметров и переменных должны иметь смысл и описывать то, что они представляют.
  • Вы не должны повторно назначать потому что это может ввести в заблуждение.
  • Метод должен обладать точно одной ответственностью (поэтому не реверсировать И печатать строку). Это способствует ясности и повторному использованию.

Я применил эти предложения к вашему готовому коду, см. Ниже:

public class StringTool {

    public static String reverse(String source) {

        // stop condition of the recursion
        if (source.isEmpty()) {
            return "";
        }

        int lastPosition = source.length() - 1;
        String lastCharacter = source.charAt(lastPosition);
        String restOfSource = source.substring(0, lastPosition);

        // place the last character at the beginning and reverse the rest 
        // of the source recursively
        return lastCharacter + reverse(restOfSource);
    }

    // test method
    public static void main(String args[]) {
        System.out.println(reverse("A STRING"));
    }

} 
11
задан Channel72 9 October 2013 в 15:33
поделиться