Почему исходный код библиотеки Java настолько странен?

Я часто полагаюсь на исходный код JDK, чтобы понять, как я должен реализовать интерфейс, и часто использую очень странный стиль отступов. Например, в DefaultCellEditor.java:

public DefaultCellEditor(final JTextField textField) {
    editorComponent = textField;
this.clickCountToStart = 2;
    delegate = new EditorDelegate() {
        public void setValue(Object value) {
    textField.setText((value != null) ? value.toString() : "");
        }

    public Object getCellEditorValue() {
    return textField.getText();
    }
    };
textField.addActionListener(delegate);
}

Мне интересно, связано ли это с моей IDE или нет, так как я нахожу этот отступ довольно странным и трудным для чтения.

Ответы

Ответ 1

Если отступ согласован для разных методов, то, вероятно, есть некоторая (неписаная) причина, почему так.

Если нет никакой рифмы или причины, то (а) кодер не заботился о отступе или (б) кодер действительно заботился, и что-то случилось на пути к вашему компьютеру. Вероятным виновником является то, что недостаточно внимания было уделено тому, как вкладки и пробелы использовались для структурирования кода, а настройки отступа IDE для вкладок отличаются от настроек последнего человека, который коснулся кода.

Если вы можете сделать символы пробела видимыми в текстовом редакторе, это должно показать вам, было ли использовано сочетание вкладок и пробелов.

Ответ 2

Звучит как tab vs spaces. Попробуйте установить ширину закладки в 4 пробела (или 8, если она равна 4).

Вот что я вижу при просмотре кода OpenJDK для DefaultCellEditor в Интернете.

enter image description here

Ответ 3

Я подозреваю, что ваша IDE игнорирует или иным образом неверно интерпретирует символы табуляции.

Ответ 4

Кажется, что NetBeans форматирует код исходного кода Java (src.jar). Я извлек банку вручную, и я открыл javax/swing/DefaultCellEditor.java с помощью обычного текстового редактора, и отступы действительно настолько плохие. Таким образом, это не IDE.

Но почему отступы настолько плохие; извините, я не знаю.

Ответ 5

Одной из возможностей является проблема IDE/редактора со стороны автора.

В мои PHP-дни я использовал редактор PSPad, который делает что-то очень похожее на это: в отступе PSPad выглядит нормально, но в других редакторах/редакторах отступы искажаются. AFAIK имеет какое-то отношение к смешиванию пространств с табуляторами и ширине табуляции.